Требуется компиляция с помощью msvc, но отклоняется gccC++

Программы на C++. Форум разработчиков
Гость
Требуется компиляция с помощью msvc, но отклоняется gcc

Сообщение Гость »

Я написал следующую программу, которая использует require без круглых скобок. Программа компилируется с помощью msvc, но не с помощью gcc и clang. Я хочу знать, какой компилятор находится здесь. Демо

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

#include 

template requires !std::is_enum_v
void foo(T)
{

}
int main()
{
foo(4); //msvc compile but not gcc and clang
}
GCC говорит:

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

:3:31: error: expression must be enclosed in parentheses
3 | template requires !std::is_enum_v
|                               ^~~~~~~~~~~~~~~~~~
|                               (                 )
Compiler returned: 1
Обратите внимание: я не ищу обходной путь, поскольку знаю, что могу решить эту проблему, заключив скобки вокруг !std::is_enum_v.< /code> Я хочу знать, какой компилятор находится здесь, для академических целей.

Подробнее здесь: https://stackoverflow.com/questions/781 ... ted-by-gcc

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