1. ホーム
  2. c++

[解決済み] コンパイラがエラー時に'pi'シンボルを表示する件

2022-11-14 12:22:47

質問

私は、あるコードを Coliru のコードをテストしていたところ、奇妙な出力が得られました。コードを調べてみたところ、次のようなシンプルなもので再現できました。 コードの一部 :

int main()
{
    π
}

g++での出力です。

を鳴らしてください。

例えば pi (だけ(address-ofなし)を使用すると、期待通りの結果を示します。

main.cpp:3:5: error: 'pi' was not declared in this scope
    pi;
    ^

私のマシンでは、g++ 4.9.2を使って、他のサイトでも再現してみましたが、できませんでした。

これは、このサイトのバグか、これらのコンパイラの設定か?

また、なぜAddress-of演算子だけ( & ) がこの記号を表示しているのでしょうか?

どのように解決するのですか?

コンパイラの出力が正しくエスケープされていないため、サイト側のバグとなります。コンパイラが出力すべきは π と出力されるはずですが、これは有効なHTMLで、ご覧のような円周率の記号が出力されます。