Почему функция вариального шаблона ведет себя иначе, чем функция шаблона? ⇐ C++
-
Anonymous
Почему функция вариального шаблона ведет себя иначе, чем функция шаблона?
template struct Strct
{
Strct(double){};
};
template void foo(Strct) {}
template void foo2(Strct) {}
< /code>
foo(1.); // error: no matching function for call to 'foo(double)'
foo2(1.); // Ok
< /code>
demo < /p>
Поскольку я даю полный список параметров шаблона, компилятор не должен иметь ничего, чтобы сделать вывод, и оба вызова должны быть эквивалентны: < /p>
< /p>
Подробнее здесь: https://stackoverflow.com/questions/796 ... mplate-fun
template struct Strct
{
Strct(double){};
};
template void foo(Strct) {}
template void foo2(Strct) {}
< /code>
foo(1.); // error: no matching function for call to 'foo(double)'
foo2(1.); // Ok
< /code>
demo < /p>
Поскольку я даю полный список параметров шаблона, компилятор не должен иметь ничего, чтобы сделать вывод, и оба вызова должны быть эквивалентны: < /p>
< /p>
Подробнее здесь: https://stackoverflow.com/questions/796 ... mplate-fun
Мобильная версия