Почему добавление constexpr делает VS2013 отвергающим это?

85
7

Этот код не компилируется в Visual Studio 2013


template <typename X> 
constexpr //error C2144: syntax error : 'bool' should be preceded by ';'
bool Test(X x)
{
return true;
}

Однако, если я удаляю ключевое слово constexpr, оно компилируется.


Но constexpr не должно быть проблемой? поскольку он всегда возвращает true.


Что пошло не так?

спросил(а) 2017-12-13T10:17:00+03:00 3 года, 2 месяца назад
1
Решение
85

Несмотря на 2013 год в названии, VS2013 не претендует на роль компилятора, ориентированного на стандарт С++ 11 (который был, когда был введен constexpr).


Значение __cplusplus будет 201103L для компилятора С++ 11.

Итак, ваш компилятор встречает токен, который он не распознает, и выдает диагностику.

ответил(а) 2017-12-13T10:33:00+03:00 3 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема