Как "активировать" стандарт c++11 в visual studio 2010?

Я новичок в программировании на c++, и мне нужно использовать класс Thread в моем проекте VS 2010. Я нашел это!--2-->ссылка, но когда я пробую следующее:

#include <thread>

VS 2010, очевидно, говорит мне " ошибка: не удается открыть исходный файл "поток"". Я понимаю, что мне нужно как-то" активировать " стандарт C++11. Я даже не знаю с чего начать.

Итак, что мне делать, чтобы использовать () C++11 standard в visual studio 2010?

4 ответов


std::thread явно не в VS 2010. Я думаю, он был добавлен с VS 2012, который также поддерживается этот вопрос и ответ. Есть ли какая-то конкретная причина, по которой вы используете 2010, а не последнюю версию 2013, которая поддерживает гораздо большую часть C++11?

также отметить: в отличие от GCC, MSVC не имеет "выбора" для новых стандартов. Он просто поддерживает их из коробки, насколько реализованы.


компилятор Visual C++ не полностью совместим с C++11. Функции C++11 поддерживаются с Visual Studio 2010 и добавляются постепенно. Даже следующая версия Visual Studio не обеспечит полную совместимость с C++11. Матрицу функций C++11, доступных в различных версиях Visual Studio, можно найти здесь:


C++11 включен по умолчанию, но в VS 2010 реализовано не так много функций. В стандартной библиотеке C++11 отсутствует много заголовков в VS 2010. вот сравнение последних нескольких выпусков VS относительно поддержки C++11.


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

чтобы " активировать "c++11 в visual studio, вам нужно установить" набор инструментов платформы " в project->properties на v110 или выше. Таким образом, visual studio поймет, что она должна использовать функции c++11.

но!

компилятор Visual C++ не полностью совместим с C++11. Функции C++11 поддерживаются с Visual Studio 2010 и добавляются постепенно. Даже следующая версия Visual Studio не будет обеспечить полную совместимость в C++11.

Мариус Bancila

Так что это сработало для <thread><future>) в visual studio 2012.

Как я предполагаю, невозможно установить набор инструментов платформы выше v100 в vs2010, поэтому невозможно "активировать" c++11 в vs2010.

вывод: для использования стандартных функций c++11 в visual studio необходимо использовать 2012 и более позднюю версию, поддерживающую платформу Набор инструментов v110 и выше.

поправьте меня пожалуйста, если я ошибаюсь!