2014-01-14 1 views
4

C++ 표준 ( 현재 초안 http://isocpp.org/files/papers/N3690.pdf, 초 20.8.3은 그러한 장소 중 하나임)을보고 LLVM의 libC++ 헤더를 통해 유형 및 예외 사양으로 사용되는 "아래 참조"를 발견했습니다. 그것은 유형이 존재하지 않을 때 사용되는 것으로 보이지만, 일종의 유효한 식별자 대신에 2 단어 구를 사용하는 것이 이상하게 보였습니다."아래 참조"는 유형 또는 예외 사양으로 사용될 때의 의미는 무엇입니까?

표준 어딘가에 논의 되었습니까? 왜/어떻게 사용합니까?

+0

[현재 초안은 N3797입니다] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3797.pdf). – Casey

답변

6

아래를 참조하십시오.은 단순히 다음 텍스트에 설명되어있는 몇 가지 가능한 유형 중 하나의 자리 표시 자일뿐입니다. 예를 들면 다음과 같습니다.

typedef 아래 참조 element_type;

1

유형 : Ptr::element_type 같은 유형이있는 경우; 그렇지 않은 경우 T 인 경우 PtrSomePointer<T, Args> 형식의 클래스 템플릿 인스턴스이며, 여기서 Args는 0 개 이상의 형식 인수입니다. 그렇지 않으면 전문 분야가 형편 없습니다. 는 문맥에 따라 아래를 참조하십시오 SomePointer<T, Args>이 유효한 경우

당신은 Ptr::element_type 또는 T을 subsitute가 있습니다.

이 양식은 구문 론적 범주로 명명되며 동일한 문서의 1.6 절에 설명되어 있습니다.

+0

표준의 텍스트에서 의미가 있지만, 내가 가지고있는 헤더의 typdefes에 나타납니다 (LLVM libC++의 원자, 메모리, 함수, 스코프 된 할당 자의 OS X의 복사본) –

+1

@BenJones 이들은 포함 된 표준 텍스트의 발췌 부분입니다 일종의 문서로 큰 블록 주석에. – Casey

+0

... less의 구문 강조가 부족합니다. 감사. –