Почему стандарт Visual Studio Community 2017 C++ C++ 98?

Вчера я обновился до последнего VS Community 2017 (предыдущий был установлен в прошлом году) и хотел проверить стандарт C++. Поэтому я запускаю следующий код, который его проверяет, и, как оказалось, у меня есть C++ 98:

#include<iostream>
using namespace std;
int main()
{
    cout << __cplusplus << endl;
    system("pause");
}

Какие результаты

199711

Почему у меня нет последнего стандарта C++?

screenshot of the code, output and vs version

Ответ 1

Значение __cplusplus временно намеренно несоответствует по умолчанию для текущих версий Visual Studio, чтобы избежать нарушения существующего кода. Это не значит, что ваш компилятор не поддерживает какие-либо С++ 11 (или более новые) функции.

Цитата из MSVC теперь корректно сообщает __cplusplus:

/Zc: __ cplusplus

Вам нужно скомпилировать с /Zc:__cplusplus переключателя /Zc:__cplusplus чтобы увидеть обновленное значение макроса __cplusplus. Мы попытались обновить макрос по умолчанию и обнаружили, что много кода не компилируется правильно, когда мы меняем значение __cplusplus. /Zc:__cplusplus продолжать использовать переключатель /Zc:__cplusplus для всех младших версий MSVC в семействе 19.xx.