매크로에 포함 파일 이름을 생성하려고합니다. 이것은 C++에 대한 법률 있어야하는데 :매크로에 포함 파일 이름 생성
#define INCLUDE_FILE "module_impl_win.hpp"
#include INCLUDE_FILE
이 잘 작동하지만 최대한 빨리 생성 된 파일 이름으로 시도로는
#define INCLUDE_FILE(M) M##"_impl_win.hpp"
#include INCLUDE_FILE("module")
를 컴파일도 실패한 실제로 나를 MSVC2010
에 경고 제공C4067 경고 : 예기치 않은 토큰 다음 처리기 지시문 - 예상 Newlin는
이지만 파일을 포함하지 않습니다.
무엇이 문제입니까? 어떻게 제거 할 수 있습니까?
이 방법을 사용할 때는주의해야합니다.'_impl_win'은 식별자 토큰이며, 밑줄로 시작하고 매크로 네임 스페이스에 있기 때문에 구현에 예약되어 있습니다. 앞의'_'을 떼어 내고 따로 연결해야합니다. 그러나 머리 꼭대기에서'_' 그 자체가 예약 된 식별자이기 때문에 어떻게해야할지 모르겠습니다. –
그런데 어떻게 휴대용입니까? – ledokol
@James McNellis : Standard는 밑줄이있는 이름과 대문자 (또는 밑줄이 두 개인 이름) 만 보유합니다. – ledokol