Как напечатать название рекурсивного лямбда-шаблона?

В целях отладки, возможно ли будет использовать какой-либо макрос для печати имени рекурсивно определенной лямбды внутри функции шаблона класса? Например

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 ответ

В зависимости от вашего компилятора могут быть доступны другие символы, у gcc есть PRETTY_FUNCTION, а у msvc есть __FUNCDNAME_ (а также пара других)

Другие вопросы по тегам