Как "активировать" стандарт 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 и выше.
поправьте меня пожалуйста, если я ошибаюсь!