VS2017下__cplusplus宏为199711L的问题

kagula

2019-4-10

		TEST_METHOD(CompilerMacro)
		{
			using namespace std;
			{
				/*
				VS2017下__cplusplus宏为199711L的问题
				发现需要在project属性页下面位置中做设置
				[Configuration Properties]->[C/C++]->[Command Line]->[Additional Options]
				加入下面参数
				/Zc:__cplusplus

				参考资料
				[1]《MSVC now correctly reports __cplusplus》
				https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
				[2]《/Zc: __cplusplus (启用更新的 __cplusplus 宏)》
				https://docs.microsoft.com/zh-cn/cpp/build/reference/zc-cplusplus?view=vs-2017
				
				C++03:__cplusplus = 199711L
				C++11:__cplusplus = 201103L
				C++14:__cplusplus = 201402L   (VC2017默认值)
				*/
				stringstream ss;
				ss << "__cplusplus => " << __cplusplus;
				Logger::WriteMessage(ss.str().c_str());
			}

			{
				/*
				VC下的输出形式
				Apr 10 2019 14:08:02
				*/
				stringstream ss;
				ss << __DATE__ << " " << __TIME__;
				Logger::WriteMessage(ss.str().c_str());
			}
		}

 

你可能感兴趣的:(C++)