Как напечатать название рекурсивного лямбда-шаблона?
В целях отладки, возможно ли будет использовать какой-либо макрос для печати имени рекурсивно определенной лямбды внутри функции шаблона класса? Например
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_ (а также пара других)