为什么
使用高版本VS打开某些项目,项目属性-配置属性-常规属性栏中没有C/C++语言标准选项,因为项目使用了VS2015(V140)平台工具集,
解决方法
项目属性-配置属性-常规属性-平台工具集中选择VS2019(V142)。
其他的
虽然选择C++语言版本在我们看来非常理所当然,但在之前各家编译器对语言的支持不能说是完全一致,也可以说是毫不相干了。大多数编译器不能完全支持某个版本的所有特性,所以选择版本毫无意义,想用某个特性只能用宏是否定义来确定是否支持,到后来编译器能够支持C++的绝大多数,才有了选择语言标准,VS官方文档如下:
/std:c++14/std:c++17/std:c++20/std:c++latest/std:c11/std:c17
Visual Studio 2017 及更高版本中提供了这些 /std 选项。 它们用于控制在代码编译期间启用的特定于版本的 ISO C 或 c + + 编程语言标准功能。 选项允许你禁用对某些新语言和库功能的支持:可能会破坏符合特定语言标准版本的现有代码。
到了VS2017才可以选择C++版本,使用V140工具集的项目没有语言标准的概念,但是可以认为V140工具集支持C++14的绝大多数特性,C++17的特性就不要想了