出于调试目的,是否可以使用任何宏在类模板函数中打印递归定义的lambda的名称?例如
template <typename T>
class X{
public:
X();
//rest of declaration
private:
//rest of declaration
};
template<typename T> X<T>::X(){
function<void()>someLambda = [] (){
//recursive definition
};
//rest of definition
}
我尝试使用__func__
但将函数名称打印为 operator()
.
根据您的编译器,可能会有其他可用的符号,gcc 有 PRETTY_FUNCTION 个,msvc 有__FUNCDNAME_个(以及其他几个符号(