我需要一些帮助来了解发生此错误的位置:
警告:非静态数据成员的类内初始化是C ++ 11扩展[-Wc ++ 11-extensions]
这是它来自的代码部分:
typedef struct Hand {
bool straight = false;
bool flush = false;
bool four = false;
bool three = false;
int pairs = 0;
} Hand;
答案 0 :(得分:7)
这不是错误,这是一个警告。它告诉您,您只能初始化以C ++ 11标准开头的结构/类的非静态成员(因为它在2011年发布,因此被称为)。在此之前,你没有被C ++ 98正式允许(已经发布,你已经猜到了,1998年)。简而言之,你所做的只是在2011年成为合法的官方C ++。你的编译器默认似乎是1998年的标准。
尝试使用-std=c++11
作为命令行标志进行编译(假设您正在使用GCC或clang),警告应该消失。如果你正在使用不同的编译器,那么也应该有一个标志(如果它最近足以实现C ++ 11)。