문제

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 ++ 표준에는 그런 것이 없습니다. 외부 라이브러리를 사용해야합니다 (부스트는 어떻게 든 지원한다고 생각합니다). 그러나 사용 이유가 실제로 좋은지 알아보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top