マクロ CLASS C と同等
C では、以下を提供する FUNCTION マクロとは異なります。現在の関数の名前。現在の関数の名前を直接提供する組み込みマクロはありません。 class.
Solution
提供された回答で述べたように、typeid(*this).name() メソッドを使用して同様の機能を実現できます。ただし、このメソッドを静的メソッドで使用する場合は制限があります。
静的メソッドおよび一般的なシナリオの場合は、マクロを使用した代替アプローチが利用可能です。 1 つのアプローチには、PRETTY_FUNCTION マクロを利用することが含まれます。
メソッド名の場合:
#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__) inline std::string methodName(const std::string& prettyFunction) { // Extract and return the method name ... }
クラス名の場合:
#define __CLASS_NAME__ className(__PRETTY_FUNCTION__) inline std::string className(const std::string& prettyFunction) { // Extract and return the class name ... }
このアプローチは、 PRETTY_FUNCTION マクロ。gcc などの特定のコンパイラーに固有です。
以上がC で現在のクラス名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。