c++ - 줄바꿈 - longdesc 란



속성 지정자 시퀀스가 상속합니까? (1)

[dcl.attr.nodiscard] / 2 님의 말 :

nodiscard 호출은 이전에 nodiscard 선언 된 함수를 호출하는 함수 호출 표현식이거나 반환 유형이 nodiscard 라고 표시된 cv 한정 클래스 또는 열거 유형 nodiscard 있습니다.

함수의 반환 형식은 DiscardableResult 입니다. 이 유형은 [dcl.attr.grammar] / 5에 정의 된 바와 같이 nodiscard 로 표시되지 않습니다.

각 attribute-specifier-seq는 나타나는 문맥에 의해 식별되는 어떤 엔티티 또는 문장에 속한다고한다 (9 절, 10 절, 11 절). 어떤 엔티티 또는 문장에 속하는 attribute-specifier-seq가 해당 엔티티 또는 문장에 적용 할 수없는 속성 또는 정렬 지정자를 포함하면 프로그램이 잘못 구성됩니다. attribute-specifier-seq가 friend 선언 (14.3)에 속하면 그 선언은 정의가됩니다. attribute-specifier-seq는 명시 적 인스턴스화 (17.7.2)에 속하지 않습니다.

강조가 추가되었습니다.

DiscardableResult 의 "구문 문맥"에는 속성이 없습니다. 따라서이 엔티티에는 "appertains"속성이 없습니다.

속성은 상속되지 않습니다.

https://src-bin.com

이 스 니펫을보십시오.

struct [[nodiscard]] Result {
};


struct DiscardableResult: Result {
};

[[nodiscard]] 속성이 있습니까? 그렇다면 어떻게 든 그것을 제거 할 수 있습니까?





c++17