문제

그만큼 진화 WG 문제 2004 년 2 월 14 일 목록 가지다 ...

EP003. #NOMACROS. EI001을 참조하십시오. stroustrup의 기록을 작성하십시오.

거친 (또는 정확한) 용어로 #nomacros, 그리고 어디서나 확장으로 사용할 수 있습니까? 최근 프로젝트에서 1995 년 빈티지 C ++의 수천 개의 파일을 2005 년 컴파일러로 포팅하는 데 유용한 진단 도구였으며, 사전 처리기를 통해 코드를 실행하고 놀라운 패키지에 대한 .i 파일을 검사하는 대안과 비교하여 2005 년 컴파일러로 2005 컴파일러로 포팅했습니다.

도움이 되었습니까?

해결책

그것은 C ++에 포함시키기위한 적극적인 고려에 따른 제안 일 뿐이지 만 현재 컴파일러에서는 여전히 사용할 수 없습니다. 페이지 아래로 더 읽으면 다음과 같이 말합니다.

ES042. #NOSPAM.

매크로가 스코프로 들어가고 빠져 나오는 미리 처리기 메커니즘을 제공하십시오. 예를 들어:

#nomacros
#in A B
…
#out A X
#endnomacros

#in에 의해 명시 적으로 활성화되지 않는 한 #NOMACROS와 #ENDNOMACROS 사이에 매크로가 확장되지 않습니다. #ouncros와 #endnomacros 사이에 정의 된 매크로는 #out에 의해 명시 적으로 활성화되지 않는 한 #endnomacros 다음에 정의되지 않습니다.

Bjarne Stroustrup의 제안. EWG에서 논의한 후 "#in"이 허용하는 매크로에 의해 사용 된 매크로가 그러한 매크로의 확장에만 사용될 수있는 솔루션을 찾기로 결정했습니다.

#Nomacros는 둥지를 틀어야합니다.

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