Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to "activate" c++11 standard in visual studio 2010?

I am new to c++ programming and I need to use the Thread class in my VS 2010 project. I've found this reference, but when I try the following:

#include <thread>

VS 2010 obviously tells me 'Error: cannot open source file "thread"'. I understand that I need to "activate" c++11 standard somehow. I do not even know where to start.

So what should I do to use () c++11 standard in visual studio 2010?

like image 688
J. Leeroy Avatar asked Nov 08 '13 10:11

J. Leeroy


2 Answers

C++11 is enabled by default, but there is not many features implemented in VS 2010. C++11 standard library is missing many headers in VS 2010. Here is a comparison of a last few VS releases regarding the C++11 support.

like image 170
Juraj Blaho Avatar answered Oct 12 '22 15:10

Juraj Blaho


Here's what I've found by myself.

To "activate" c++11 in visual studio you need to set "Platform Toolset" in project->properties to v110 or above. So that's how visual studio will understand that it should use c++11 features.

BUT!

The Visual C++ compiler is not fully C++11 compatible. C++11 features had been supported since Visual Studio 2010 and added incrementally. Not even the next version of Visual Studio will provide full C++11 compatibility.

Marius Bancila

So it worked for <thread> (and <future>) in visual studio 2012.

As I suggest it's impossible to set Platform Toolset above v100 in vs2010, so it's impossible to "activate" c++11 in vs2010.

Conclusion: to use c++11 standart features in visual studio you will need to use 2012 and higher version which supports Platform Toolset v110 and above.

Correct me please if I'm wrong!

like image 44
J. Leeroy Avatar answered Oct 12 '22 17:10

J. Leeroy