C++使用STL时需要注意 你的代码遵循的c++版本 有些特性只有高版本c++才支持 如thread、mutex至少需要c++11
g++编译时默认遵循c++98 可以使用-std=<standard>指定c++版本
c++版本经历了c++98、c++03、c++11、c++14、c++17
cpp代码中__cplusplus预定义宏表明了当前编译遵循的c++版本 经g++加-std=<standard>得
c++98: #define __cplusplus 199711L
c++03: #define __cplusplus 199711L
c++11: #define __cplusplus 201103L
c++14: #define __cplusplus 201402L
c++17: #define __cplusplus 201500L
如下图
同样C语言也有版本c89、c99、c11
gcc编译时默认遵循c11(可能每个编译器默认使用的不同) 可以使用-std=<standard>指定c版本