Неоднозначная специализация шаблонов с понятиями и реальными типами: какой компилятор прав?C++

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

Сообщение Anonymous »


Рассмотрим следующий код:

#include шаблон недействительный foo() { } шаблон недействительный foo() { } шаблон void foo() { } int main() { foo(); } Он компилируется без проблем в последних версиях Clang и MSVC, но не в GCC (ссылка на godbolt)

Сборка с помощью GCC завершается неудачей:

ошибка: неоднозначная специализация шаблона 'foo' для 'void foo()' 9 | void foo() { } | ^~~~~~~~~ примечание: кандидаты: 'template void foo()' 3 | недействительный foo() { } | ^~~ примечание: 'template требует интеграла< > void foo()' 6 | недействительный foo() { } | ^~~ Какой компилятор прав? Я бы сказал, что GCC неправ, поскольку не должно быть никакой двусмысленности между специализацией через концепцию (которая сохраняет код общим) и фактической явной специализацией пользователя, которая всегда должна иметь приоритет.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C++: как специализация шаблонов работает для иерархий классов шаблонов?
    Anonymous » » в форуме C++
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Как специализация шаблонов работает для иерархий классов шаблонов?
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Выведите максимальное количество аргументов функций (сбой с понятиями)
    Anonymous » » в форуме C++
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как работает специализация шаблона Auto Return Type с различными типами возврата?
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Перегрузка функций с помощью фиктивных структур и специализация шаблонов
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

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