Рассмотрим следующий пример: < /p>
Код: Выделить всё
#include
#include
template
void foo( T && )
{
std::cout
Неформально «A более специализирован, чем B» означает «A принимает подмножество
Типы, которые B принимает». T &&)
. Тем не менее, последние Clang и GCC, похоже, не согласны со мной, поскольку я получаю следующий вывод: < /p>
Это фиксируется либо путем приема Std :: vector по значению, либо явно передавая постоянную ссылку LVALUE, не заставляя компилятор связывать временное. Но почему это так? Считаются ли эталонные категории более высоким приоритетом, когда дело доходит до частичного упорядочения?
Подробнее здесь:
https://stackoverflow.com/questions/797 ... o-fail-why