gcc 2.96の無効なクラスロケール

gcc 2.96の無効なクラスロケール

私はgccバージョン2.96がインストールされているi686でRed Hat Linuxバージョン9カーネル2.4.20-8を使用しています。私のコードでは、以下を宣言します。

std::locale utf8_locale;

次のエラーが発生します。

syntax error before `;'

私に解決策を提案してください。

答え1

Linux 2.4.20は2002年11月にリリースされました。

GCC 3.0.4は2002年2月にリリースされました。そこ定式化されていない 2.962.96 は、バイナリ形式が親または下位互換ではない内部開発リリースであり、GCC 2.95.x または 3.0 のように動作しない場合があります。

ISOのファイル日付で判断すると、Red Hat Linux 9は2003年初めに組み立てられました。ウィキペディアは同意します発売日が2003年3月31日だと主張しました。

これらはすべて比較です古代の。

私は、GCCのC ++サポート(名前空間など、そしてほぼ確実にC ++標準ライブラリを含む)が過去12年間で大幅に改善されたと確信しています。 BE最新バージョンのコンパイラと標準ライブラリを使用してコードをビルドします。std::locale10年前のコンパイラで現代的なものを作ることを期待しないでください。紹介するそれから)。

役に立たない場合は、次のことを行う必要があります。周囲の線と周囲のエラーを見てください。多くの場合、古いエラーによってコンパイラが脱線し、実際には存在せず、過去の解析エラーの結果であるエラーが発生する可能性があります。後でエラーを解決する前に、すべての初期エラーを解決してください。

関連情報