Недавно я проверял некоторые коды шаблонов C ++, и я нашел одну ошеломляющую ошибку. Согласно моим исследованиям в Интернете, в частности StackoverFlow, этот код полностью действителен, однако, компилятор повышает ошибку с компиляцией. Ошибка находится ниже кода. < /P>
code: < /strong> < /p>
template void print(C& c) {
}
int test() {
vector v(5, "Yow!");
print(v);
return 0;
}
< /code>
вывод компилятора: < /strong> < /p>
In function ‘int test()’:
error: no matching function for call to ‘print2(std::vector&)’
note: candidate is:
note: template void print2(C&)
< /code>
Кажется, что что -то не так в определении или моем компиляторе, но я проверил этот код как с G ++, так и с Clang ++, чтобы быть уверенным, что нет никакой зависимой для компилятора проблемы. Они оба выносят ту же ошибку. < /p>
Спасибо < /p>
Подробнее здесь: https://stackoverflow.com/questions/208 ... -parameter