这里单纯的作为记录问题的所在 c++添加了很多新的特性,比如对于vector不能使用中括号初始化以及auto关键字,以为萌新,还在发现c++11的新特性 c++11在vscode修改我们需要修改几个配置: 第一步: 打开c++ 添加扩展设置 找到compilerArgs配置 添加c++11的配置:
"C_Cpp.default.compilerArgs": [
"-g",
"${file}",
"-std=c++11",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
]
设置完以后我们在项目文件夹内找到配置文件:c_cpp_properties.json 修改: “cStandard”: “c11”, “cppStandard”: “c++11”
{
"configurations": [
{
"name": "Mac",
"defines": [],
"macFrameworkPath": [
"/System/Library/Frameworks",
"/Library/Frameworks",
"${workspaceFolder}/**"
],
"compilerPath": "/usr/bin/g++",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
],
"version": 4
}
接下来修改tasks.json文件夹下的args属性:
"args": [
"-std=c++11",
"-stdlib=libc++",
"-fdiagnostics-color=always",
"-g",
"${file}",
"${workspaceFolder}/test.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
]
属性修改完,因为本质上而言,确实已经引入了c++11的一些参数配置,但是实际上还是并没有成功,你会发现你在编译时c++11的特性还是没有引入进来,这时候我们需要考虑我们编译器的插件类型,这里我使用的是code-runner,coderunner内我们也需要做一定的配置:找到 Code-runner: Executor Map 在settings.json 内你会找到对于c++文件的编译命令,在cpp属性内,我们这里添加-std=c++11
"cpp": "cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
若是clang编译的那我们需要在扩展配置内找到cflags属性,进行添加c++11的配置 到这里c++11的配置就此完成,新特性就可以开开心心使用了。
|