단위 테스트 프레임 워크로 작업하면서 매크로 인수를 테스트하고 싶습니다. 간단히 말해서, 매크로 FOO(x)
을 확장하여 이 short
이고 FOO(anything_else)
이 long
이되도록합니다.선행 처리기 인수를 조건부로 바꿀 수 있습니까?
C++ 템플릿을 사용하면 물론 문제가되지 않습니다. 그러나 여기에 typedef
이 아니라 실제 토큰 교체가 필요합니다. 나는. FOO(char) FOO(char) i;
은 long long i;
과 같은 유효한 정의 여야합니다.
최신 C 표준은 매크로의 대체 텍스트가 첫 번째 인수의 표현 유형에 의존 할 수있는 기능을 가지고 있습니다. 이것을 빌딩 블록으로 사용할 수 있습니다. –
boost.pp에 대해 살펴 보았으며 그와 함께 somethign을 해킹 할 수 있다면? – PlasmaHH
@StefanMajewsky : 내가 믿는 제네릭을 말하는거야? – dirkgently