Шаблоны и аргументы по умолчанию ...
Уважаемые эксперты, у меня есть этот фрагмент кода:
template <typename genericType = int> genericType add (genericType a, genericType b) { return a + b; } int main () { int i1 = 1; double d2 = 3.14; std::cout << "Add: " << add<> (i1,d2) << std::endl; return 0; }
это дает мне следующую ошибку во время компиляции:
test.cpp:14:27: error: no matching function for call to 'add' std::cout << "Add: " << add<> (i1,d2) << std::endl; ^~~~~ test.cpp:4:13: note: candidate template ignored: deduced conflicting types for parameter 'genericType' ('int' vs. 'double') genericType add (genericType a, genericType b) ^ 1 error generated.
Есть ли способ, которым я могу привести аргументы, чтобы быть int?
Я думал, что это возможно с помощью значения шаблона по умолчанию.
Большое спасибо,
- Мауро.
Что я уже пробовал:
template <typename genericType = int> genericType add (genericType a, genericType b) { return a + b; } int main () { int i1 = 1; double d2 = 3.14; std::cout << "Add: " << add<> (i1,d2) << std::endl; return 0; }