如何打印递归 lambda 模板的名称



出于调试目的,是否可以使用任何宏在类模板函数中打印递归定义的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_个(以及其他几个符号(

最新更新