私はRTTIについてよく分かりませんが、実行時に変数の名前を取得できるため、RTTIを利用できます。 スレッドが現在実行している関数の名前を取得できますか?C++で現在の(メンバ)関数名を取得することは可能ですか?
3
A
答えて
11
C++ 11は現在の機能のために__func__
を標準化しました。
さまざまなコンパイラが__FUNCTION__
,__PRETTY_FUNCTION__
などのバリエーションをサポートしています。
2
0
号
C++のrun-time type identificationは、現在でいるメソッドの名前は、オブジェクトの種類を把握することができますが、ない。
0
いいえ、それは不可能です。 C++では、リフレクション(静的でも動的でもない)(C#など)はサポートされていません。あなたはそれをエミュレートするためにいくつかのプリプロセッサの魔法が必要になります。
とは別に、実行時に関数/メソッド名という概念は必ずしもありません(これは、ソースを対応するフラグでコンパイルした場合にのみデバッグ情報として利用できます)。
いいえ、RTTIは変数の**名前**を返しません。**タイプ**を決定することができます。 –
[Cのスタックトレースを取得する方法は?](http://stackoverflow.com/questions/105659/how-can-one-grab-a-stack-trace-in-c) –
申し訳ありませんが、私は 'typeid(var).name'がそうしていると思ったが、明らかに変数の型名を返す。 – qdii