我需要一些帮助来了解此错误发生的位置:
warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
这是它来自的代码部分:
typedef struct Hand {
bool straight = false;
bool flush = false;
bool four = false;
bool three = false;
int pairs = 0;
} Hand;
最佳答案
这不是错误,这是警告。它告诉您,您只能初始化以 C++11 标准(之所以这样称呼是因为它于 2011 年发布)开始的结构/类的非静态成员。在此之前,C++98 并未正式允许您这样做(您猜对了,它于 1998 年发布)。长话短说,您所做的事情在 2011 年才成为合法的官方 C++。您的编译器的默认设置似乎是 1998 年的标准。
尝试使用 -std=c++11
作为命令行标志进行编译(假设您使用的是 GCC 或 clang),警告应该会消失。如果您使用的是不同的编译器,那么也应该有一个标志(如果它足够新以实现 C++11)。
关于c++ - 什么是 C++11 扩展 [-Wc++11-extensions],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45291142/