// lambdas 함수에서 함수명 로그 남기는 방법은 없음
#include "stdafx.h"
#include <iostream>
void f2(){
auto& _func_ = __FUNCTIONW__;
auto fx2 = [&]{
std::wcout << _func_ << L"\n";
std::wcout << __FUNCTIONW__ << L"\n";
};
fx2();
}
struct XOUT{
void f(){
auto& _func_ = __FUNCTIONW__;
auto fx2 = [&]{
std::wcout << _func_ << L"\n";
std::wcout << __FUNCTIONW__ << L"\n";
};
fx2();
}
};
int _tmain(int argc, _TCHAR* argv[])
{
struct X{
void f(){
auto& _func_ = __FUNCTIONW__;
auto fx2 = [&]{
std::wcout << _func_ << L"\n";
std::wcout << __FUNCTIONW__ << L"\n";
};
fx2();
}
};
auto& _func_ = __FUNCTIONW__;
auto fx2 = [&]{ std::wcout << _func_ << L"\n"; };
fx2();
f2();
//XOUT.f(); // 컴파일 오류 남
XOUT().f();
//X.f(); // 컴파일 오류 남
X().f();
/*
// 화면 출력
wmain
f2
`anonymous-namespace'::<lambda0>::operator ()
XOUT::f
`anonymous-namespace'::<lambda1>::operator ()
wmain::X::f
`anonymous-namespace'::<lambda3>::operator ()
*/
return 0;
}
#include "stdafx.h"
#include <iostream>
void f2(){
auto& _func_ = __FUNCTIONW__;
auto fx2 = [&]{
std::wcout << _func_ << L"\n";
std::wcout << __FUNCTIONW__ << L"\n";
};
fx2();
}
struct XOUT{
void f(){
auto& _func_ = __FUNCTIONW__;
auto fx2 = [&]{
std::wcout << _func_ << L"\n";
std::wcout << __FUNCTIONW__ << L"\n";
};
fx2();
}
};
int _tmain(int argc, _TCHAR* argv[])
{
struct X{
void f(){
auto& _func_ = __FUNCTIONW__;
auto fx2 = [&]{
std::wcout << _func_ << L"\n";
std::wcout << __FUNCTIONW__ << L"\n";
};
fx2();
}
};
auto& _func_ = __FUNCTIONW__;
auto fx2 = [&]{ std::wcout << _func_ << L"\n"; };
fx2();
f2();
//XOUT.f(); // 컴파일 오류 남
XOUT().f();
//X.f(); // 컴파일 오류 남
X().f();
/*
// 화면 출력
wmain
f2
`anonymous-namespace'::<lambda0>::operator ()
XOUT::f
`anonymous-namespace'::<lambda1>::operator ()
wmain::X::f
`anonymous-namespace'::<lambda3>::operator ()
*/
return 0;
}
댓글
댓글 쓰기