[英]How to deal with [-Wc++11-extensions] in the text editor
当我尝试将myCurrentTry初始化为1并将myMaxTries初始化为5时,我遇到警告,错误是:
非静态数据成员的类内初始化是C ++ 11扩展[-Wc ++ 11-extensions]
实现这一目标的代码是:
class starUFO{
public:
void Reset();
int getMaxTries();
int getCurrentTry();
bool isGameWon();
bool checkGuessValidity(string);
private:
int myCurrentTry = 1;
int myMaxTries = 5;
};
我听说有人说“尝试使用-std = c ++ 11编译”,这确实在我的命令行中删除了警告但是我想修复VS代码配置,所以它不会将此视为警告,我有最新的VS Code,但似乎有一个更深层次的问题。
编写一个构造函数并在那里初始化你的成员变量:
class starUFO
{
private:
int myCurrentTry;
int myMaxTries;
public:
starUFO()
: myCurrentTry(1),
myMaxTries(5)
{
}
...
};
要告诉VSCode您正在使用哪个C ++标准,请打开命令选项板(Ctrl + Shift + P),选择“C / C ++:编辑配置(UI)”,向下滚动并更改“C ++标准”下拉列表。 在这种情况下,请选择“c ++ 11”或更高版本。
这假设您使用的是“IntelliSense”引擎,而不是较旧的“Tag Parser”引擎:转到文件→首选项→设置→C / C ++→“C_Cpp:Intelli Sense Engine”,并确保将其设置为“默认” ”。
这些选项存在于VSCode 1.37.1和C / C ++扩展名 0.25.1(又名“cpptools”)中。 我不知道他们何时被介绍。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.