문제
C ++를 사용하여 현재 메소드의 이름을 얻는 (표준화 된) 방법이 있습니까?
GNU GCC를 사용하여 매크로를 사용하여이를 수행 할 수 있습니다. __FUNCTION__
그리고 __PRETTY_FUNCTION__
(2 밑줄로 둘러싸여 있음) 그러나 이것은 물론 휴대용이 아닙니다. 표준 C ++에서이를 수행하는 방법이 있습니까? 아니면 휴대용으로 만드는 방법이 있습니까?
해결책
그만큼 __func__
식별자는 C99 표준의 일부이며 C ++ 0X 드래프트에 있습니다.
식별자 __func__
다음이 각 기능 본문의 시작에있는 것처럼 컴파일러에 의해 암시 적으로 선언됩니다.
static const char __func__[] = "function-name";
어디 function-name
컴파일러가 자동으로 제공하는 구현 정의 문자열입니다.
해당 표준에 대한 지원이 이용 가능 (또는 더 광범위하게 사용할 수 있음)까지 컴파일러 관련 구덩이가 고집됩니다.
다른 팁
아니요 ...하지만 일부는 비 표준 표준이됩니다!
보다 http://msdn.microsoft.com/en-us/library/b0084kay(vs.80).aspx ANSI 표준 재료를 간략하게 설명한 다음 포함하는 마이크로 소프 기능
아니요, C ++ 표준에서는 지원되지 않습니다.
이를 "내성"이라고하며 C ++ 표준에는 그런 것이 없습니다. 외부 라이브러리를 사용해야합니다 (부스트는 어떻게 든 지원한다고 생각합니다). 그러나 사용 이유가 실제로 좋은지 알아보십시오.
제휴하지 않습니다 StackOverflow