매크로 확장을 추적하고 싶습니다. 매크로가 확장 된 횟수와 확장이 발생한 때의 arg는 무엇입니까? 전처리의 말에매크로 확장을 추적하십시오.
mymacro(a);
mymacro(b);
:이 같은 뭔가를
#define mymacro(x) int x
을 내 코드에서 예를 들면 다음과 같습니다
,나는 매크로는 다음과 같을 수 있습니다 확장 (오 그래, 특정 매크로가 마지막으로 확장되도록하는 방법이 있습니까?), mymacro가 몇 번 사용되고 args가 전달되었는지 알고 싶습니다. 이 경우 2 배가되고 args는 a와 b가됩니다.
부스트 전 처리기 lib를 조사하고있었습니다. 그들은 BOOST_PP_ARRAY를 가지고 있지만 나중에 "정적"으로 만드는 법을 모르겠습니다.
BOOST_PP_COUNTER에서 뭔가가 발견되었습니다. BOOST_PP_COUNTER는 전처리 구에서 상태를 유지할 수있는 것처럼 보입니다. 그러나 나는 내가 원하는 것을 어떻게하는지 명확하지 않다.
컴파일러가 지원하는 경우 컴파일러 메시지를 출력하는 매크로를 추가하여이 작업을 수행 할 수 있습니다. –
좀 더 구체적으로 말씀해 주시겠습니까? 나는 Clang을 사용하고 있습니다. –
그것은 나에게 즉시 명확하지 않습니다. 그러나 당신은 과거의 상황에 대한 검사를하고 있으며, 결과를 원합니다 (예를 들어 무엇이 호출되었는지, 등등 ...), 전처리 시간에 사용 가능해지기를 원합니다. 그것과 함께, 그렇지? –