web-dev-qa-db-ja.com

Visual C ++の__PRETTY_FUNCTION__

Visual Studio2017のVisualC++(正確には15.5.6)で遊んでいると、GCCの__PRETTY_FUNCTION__が機能しているように見えることに気付きました。 -少なくともある程度は…

入力中に提案に沿って表示されました: enter image description here

また、期待どおりにツールチップに値が表示されました: enter image description here

それでも、__PRETTY_FUNCTION__を使用してコードをコンパイルすると、エラーが発生します。

error C2065: '__PRETTY_FUNCTION__': undeclared identifier

それで、それをVisual C++で機能させる方法はありますか?いくつか含まれていますか?またはいくつかの特別なコンパイル設定? (私はデフォルトのものを使用していると思います。)なぜそれは示されている例では機能するのに、実際には機能しないのでしょうか?!

__PRETTY_FUNCTION__の代わりとなるVisualC++を探していないことに注意してください。私はすでにそれらを知っています。ここでの動作に驚いて興味があります。

8
Adam Badura

それで、それをVisual C++で機能させる方法はありますか?いくつか含まれていますか?またはいくつかの特別なコンパイル設定? (私はデフォルトのものを使用していると思います。)なぜそれは示されている例では機能するのに、実際には機能しないのでしょうか?!

番号。

Visual Studioは、Visual C++チームブログの Intellisenseの再構築 および ここ で説明されているように、InteliSenseの Edison Design Group C++フロントエンドを使用します。 Microsoft C++コンパイラではありません。これは、Intellisenseで使用できる機能の一部がコンパイル時に使用できないことを意味します。

EDGの C++フロントエンドドキュメント は、71ページの__PRETTY_FUNCTION__のようなGCCの事前定義の一部をサポートしていると述べています-「1.13事前定義されたマクロ」とMicrosoftの__FUNCSIG__

__EDG_VERSION__と入力してカーソルを合わせると、EDGのバージョンを確認することもできます。

7
Mihayl