在c ++中获取当前方法的名称

use*_*163 14 c++ introspection

是否有(标准化)方法使用c ++获取当前方法的名称?

使用GNU GCC你可以通过使用宏__FUNCTION____PRETTY_FUNCTION__(由2个下划线包围)来实现这一点,但是,这当然是不可移植的.有没有办法在标准c ++中实现这一点或使其可移植?

Mic*_*urr 27

所述__func__标识符是C99标准的一部分,并且是在C++ 0X草案.

标识符__func__由编译器隐式声明,就好像以下是每个函数体的开头一样:

static const char __func__[] = "function-name";
Run Code Online (Sandbox Code Playgroud)

其中function-name是由编译器自动提供的实现定义字符串.

在获得对这些标准的支持(或更广泛可用)之前,您会遇到特定于编译器的垃圾.