Можно ли смешивать конструкторы с фиксированными параметрами и шаблонами конструктора?Смешивающие конструкторы с фиксированными параметрами и конструкторами с шаблонами конструктора
Мой код:
#include <iostream>
class Test {
public:
Test(std::string, int, float) {
std::cout << "normal constructor!" << std::endl;
}
template<typename ... Tn>
Test(Tn ... args) {
std::cout << "template constructor!" << std::endl;
}
};
int main() {
Test t("Hello World!", 42, 0.07f);
return 0;
}
Это дает мне "шаблон конструктор!". Есть ли способ, который называется мой обычный конструктор?
Именно то, что тип должен компилятор интерпретирует строку быть? –
@Captain Obvlious: Я не понимаю ваш вопрос, но теперь вижу, что «Hello World!» интерпретируется как char *, а не std :: string, и, таким образом, используется конструктор шаблонов. – gartenriese
@gartenriese: Это не «интерпретируется» ... это ** есть ** 'const char *'. Шаблон не делает никакой интерпретации для вас. Я думаю, что это то, что C.O. хотел указать. –