このエラーが発生している場所を理解するのに助けが必要です:
警告:非静的データメンバーのクラス内初期化はC++ 11拡張です[-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年に公開されたため、いわゆる)で始まるstruct /クラスの非静的メンバーのみを初期化することが許可されていることを示しています。それ以前は、C++ 98によって正式に許可されていませんでした(1998年に公開されたと推測しています)。要するに、あなたがやっていることは2011年に正式な公式C++になっただけです。コンパイラのデフォルトは1998年の標準のようです。
コマンドラインフラグとして-std=c++11
を使用してコンパイルしてみてください(GCCまたはclangを使用している場合)、警告は表示されなくなります。別のコンパイラーを使用している場合は、そのためのフラグも必要です(C++ 11を実装するのに十分最近の場合)。