Частичное упорядочение шаблонов перегруженных функций, кажется, терпит неудачу, почему?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Частичное упорядочение шаблонов перегруженных функций, кажется, терпит неудачу, почему?

Сообщение Anonymous »

Рассмотрим следующий пример: < /p>

Код: Выделить всё

#include 
#include 

template
void foo( T && )
{
std::cout 

Неформально «A более специализирован, чем B» означает «A принимает подмножество
Типы, которые B принимает». T &&) 
. Тем не менее, последние Clang и GCC, похоже, не согласны со мной, поскольку я получаю следующий вывод: < /p>

Код: Выделить всё

Common foo!
Common foo!
Это фиксируется либо путем приема Std :: vector по значению, либо явно передавая постоянную ссылку LVALUE, не заставляя компилятор связывать временное. Но почему это так? Считаются ли эталонные категории более высоким приоритетом, когда дело доходит до частичного упорядочения?

Подробнее здесь: https://stackoverflow.com/questions/797 ... o-fail-why
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»