2015-01-04 2 views
7

7.1.6.1/1는 다음 문 (강조 광산)를 포함C++ 표준의 7.1.6.1/1에서이 명령문의 관련성은 무엇입니까?

이력서 - 예선, CONST 휘발성이있다

. 이력서 - 예선자명 한 일 입니 지정자-SEQ에 나타나면 초기화 - 선언자-목록 선언의 빈을지지 않습니다.

위의 굵게 표시된 문과의 관련성은 무엇입니까? 다시 말해, 선언 - 지정자 -sequencecv-unqualified 유형의 예를 생성 할 수 있습니까? 선언의 init-declarator-list이 비어 있습니다.

struct A { }; // valid 
const struct B { }; // invalid, const would have no meaning 
const struct C { } c { }; // valid 

아무 것도 없다 :

답변

11

는 물론, 대부분의 클래스와 열거 정의는 그것을 사용합니다. 는 init-선언자 목록은 단순한 선언에서 사용할 수 있으며,이 경우 표준 (C++ 11) 명시된다

7 선언 [dcl.dcl]

3에서 클래스 (9 절) 또는 열거 (7.2)를 선언 할 때 않거나 계산 지정자-SEQ 포함 중 하나 간단한 선언, 선택적 INIT-선언자리스트, 즉 단을 생략 할 수있다 클래스 지정자, 정교 유형 지정자 클래스 키 (9.1) 또는 enum 지정자이있는입니다.

+0

내 답변으로는 너무 빠르지 만, 다른 것을 생각해 낼 수 있습니까? 나는 고군분투하고있다. – Columbo

+0

나는 다른 것이 있다고 생각하지 않는다. 사실, 나는 암묵적인 int에 대해서도 아무것도 말하지 않는다. 함수 매개 변수 선언은 init-declarator-list를 가지고 있지 않다. 만약 그렇다면,'void f (const int); '는 유효하지 않은 선언이다. – hvd

+0

네, 저의 답변을 삭제 한 이유가 바로 그 사실입니다. :) – Columbo

관련 문제