2016-08-29 4 views
-2

Я пытаюсь объявить constexpr, и он генерирует ошибки компиляции.C++ 11 ошибка constexpr компиляции

static constexpr float goBaseMovementSpeed = (1.135f/440.f); 

Почему эта линия не работает?

ошибка C2144: синтаксическая ошибка: «float» должен предшествовать ';'
ошибка C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int

goBaseMovementSpeed является членом класса.

Компилятор: Visual Studio 2013

+0

Какой версии VS вы используете? –

+0

2015, я не могу заставить его работать на g ++ 11 – ioanb7

+3

Опубликуйте минимальный пример, который воспроизводит ошибку. Он отлично подходит для меня тоже: http://ideone.com/jYWmgS – HolyBlackCat

ответ

4

Visual Studio 2013 не поддерживает все функции в C++ 11. В то же время он поддерживает крошечную часть функций C++ 14, например, std::make_unique.

constexpr не поддерживается в Visual Studio 2013.

Для полного списка: https://msdn.microsoft.com/en-us/library/hh567368.aspx

Смежные вопросы