一. 背景:C++部分特性需要C++11支持,因此需要设置支持C++11。
例如:
vector
注:c++98不可以这样构造
通过列表中元素的构造,但是需要注意,列表中元素的类型必须与list的元素类型相同,否则会进行类型转换。
二.设置:
一开始采用如下链接的方法,但是发现仍然没生效。
https://blog.csdn.net/yangyanghao/article/details/115445951
因此继续分析,后来再如下文章找到解决办法:
http://www.wjhsh.net/randy-lo-p-14579039.html
第一步:
code->preference->搜索extension->将c++中的configuration warning改成false,然后搜索code runner,点击如下的edit in settings.json
设置c++编译指令,将-std=c++11加在"cpp"条目后面,变成如下的形式(如下图所示),至此c++11标准的代码就可以使用code runner插件,使用control+option+N运行然后得到不报错的结果
奇怪:该步骤修改后,发现“右键”Run Code没问题,但是debug模式仍然存在问题。
后续按照下面的json配置后,问题消失,主要是launch.json的配置,修改后就可以在“调试控制台”看到输出结果了。
通过auto关键字进行测试发现能够正确运行无warning,命令行中先通过g++编译和执行了代码,输出为文件名(无扩展名),设置编译控制参数-std=c++11,设置输出为 test(文件名),然后进入目录下将输出文件中的内容打印到控制台,也就是我们最终看到的结果。
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "clang++ - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "{fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"preLaunchTask": "clang++ build active file"
}
]
}
setting.json
{
"code-runner.runInTerminal": true,
"C_Cpp.default.cppStandard": "c++11",
"code-runner.executorMap": {
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -std=c++14 && $dir$fileNameWithoutExt"
},
"files.associations": {
"typeinfo": "cpp"
}
}
task.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "clang++ build active file",
"command": "/usr/bin/clang++",
"args": [
"-std=c++11",
"-stdlib=libc++",
"-g",
"{fileDirname}/{workspaceFolder}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
vscode下载:
https://blog.csdn.net/yrvyu/article/details/125418638