我正在学习c++,我使用的是Mac版的Visual Studio代码,我使用Code Runner来运行我的程序,我的问题是,当我使用c++11中的“auto”来声明变量时,Visual Studio代码会给我这样的警告,但如果我尝试在Xcode或Eclipse上运行它,它不会:
warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
for(auto y: nstrVec)
这是必要时的程序:
#include <iostream>
#include <cstdlib>
#include <string>
#include <vector>
#include <numeric>
#include <sstream>
int main(){
std::vector<std::string> nstrVec(10);
std::string str("I'm a string");
nstrVec[0] = str;
std::cout << str.at(0) << "\n";
std::cout << str.front() << " " << str.back() << "\n";
std::cout << "Length " << str.length() << "\n";
// copies all characters after the fourth
std::string str2(str, 4);
for(auto y: nstrVec)
if(y != "")
std::cout << y << "\n";
return 0;
}
这是c_cpp_属性. json文件:
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**",
"/System/Library/Frameworks/Kernel.framework/Versions/A/Headers"
],
"defines": [],
"macFrameworkPath": [
"/System/Library/Frameworks",
"/Library/Frameworks"
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
9条答案
按热度按时间hgtggwj01#
VS代码:
文件〉〉首选项〉〉设置〉〉扩展名
查找C_Cpp〉默认:Cpp标准下拉菜单
设置为c++11
yeotifhr2#
我花了这么长时间今天试图找出为什么我得到这个错误,没有在哪里有我需要的确切答案,所以我想我会张贴在这里,以防万一我可以保存任何人的麻烦。
如果您使用的是code runner,请查看用户设置并设置:
相关位是“g++ -标准品=c++17”。
这当然是假设你可以使用丹尼尔的解决方案在shell中编译你的程序,而不是在VScode +中和使用code runner。
wz8daaqr3#
我遇到了同样的问题,但使用set vscode-user-settings〈〉解决了这个问题
bfhwhh0e4#
我用这个解决了我的问题。打开你的终端
猛击
日什
ijxebb2r5#
对于每个来问这个问题的人来说,找到一个快速的答案(就像我一样):
下面的编译器命令应该用最新的C标准(c17)编译你的程序
main.cpp
,并且应该去掉上面描述的警告消息:g++ -std=c++17 -g main.cpp -o main
评论中多次提到,但我认为这个问题应该有一个规律的答案。
piah890a6#
如果您在VS中使用CPH judge扩展,请在Cph › Language › Cpp中添加
-std=c++11
:扩展设置中的参数qvk1mo1f7#
如果您使用的是CPH,请将此行添加到Cph〉〉Language〉〉Cpp:参数
如果它对您不起作用,也可以转到文件〉〉首选项〉〉设置〉〉扩展〉〉C_Cpp〉〉Default:Cpp_Standard并将其设置为c++17
kxe2p93d8#
这里没有一个答案对我在Mac上完全在VSCode中工作(我不想修改我的.zshrc文件)。
不过,* 确实 * 起作用的是在
Extensions > clangd
下为clangd: Fallback Flags
添加参数--std=c++20
,然后重新启动VSCode。ugmeyewa9#
修复MAC +代码运行程序。
1.选择代码-〉设置-〉设置
1.在搜索提示中,搜索“代码运行者”:
1.点击“编辑设置. json”
1.查找名为“代码运行者.执行Map”的字段-〉“cpp”
1.在g之后,添加以下内容“-std=c17“。换句话说,该行应如下所示:
“cpp”:“cd $目录&& g++ -std=c++17 $文件名-o $文件名不带扩展名&& $目录$文件名不带扩展名”
1.关闭VSCode,然后再次打开它。