Was ist ein C++11-Verlängerung [-Wc++11-Erweiterungen]
Brauche ich etwas Hilfe, Verständnis, wo dieser Fehler Auftritt:
Warnung: in-class initialization of non-static data member ist eine C++11-Verlängerung [-Wc++11-Erweiterungen]
Dies ist der Abschnitt des Codes, dass es kommt:
typedef struct Hand {
bool straight = false;
bool flush = false;
bool four = false;
bool three = false;
int pairs = 0;
} Hand;
- entfernen Sie die Initialisierungen, alle
= false;
und= 0;
Dies ist nur eine definition vonstruct Hand
Sie müssen die Felder zu initialisieren, wenn Sie eine Instanz vonstruct Hand
. Werfen Sie einen Blick auf this
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist nicht ein Fehler, es ist eine Warnung. Es sagt, dass Sie nur erlaubt, initialisieren Sie den nicht-statische member einer struct /class beginnend mit dem C++11-standard (so genannt, weil es war veröffentlicht im Jahr 2011). Davor, Sie waren nicht offiziell erlaubt von C++98 (veröffentlicht, du hast es erraten, 1998). Lange Geschichte kurz, was Sie tun, hat nur legal, offizielle C++ - im Jahr 2011. Dein compiler ist Standard zu sein scheint, die 1998 standard.
Versuchen, kompilieren mit
-std=c++11
als command line flag (vorausgesetzt, Sie sind mit GCC oder clang), und die Warnung sollte Weg gehen. Wenn Sie einen anderen compiler, es sollte ein flag für das auch (wenn es neu genug ist, um zu implementieren, die C++11).