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

时间:2018-01-15 02:21:20

标签: c++ debugging recursion lambda macros

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

1 个答案:

答案 0 :(得分:0)

根据你的编译器,可能还有其他符号,gcc有 PRETTY_FUNCTION ,msvc有__FUNCDNAME_(以及其他几个)