C ++ 초안을 이해하기가 어려워서 C ++ 초안을 소화하기가 매우 어려워 다른 리소스를 선호하기 때문에 표현 유형 을 이해하려고 합니다. C ++ 버전 간의 표현 및 정의가 크게 변경되었습니다.
다음에서는 다음과 같은 초안을 참조합니다.
C++11
3.10 L 값과 r 값... prvalue ( "순수한 rvalue")는 xvalue가 아닌 rvalue입니다. [예 : 반환 유형이 참조가 아닌 함수를 호출 한 결과는 prvalue입니다. 12, 7.3e5 또는 true와 같은 리터럴 값도 prvalue입니다. — 최종 예]
C++17
3.10 L 값과 r 값... prvalue는 평가에서 객체 또는 비트 필드를 초기화하거나 표시되는 컨텍스트에 지정된대로 연산자의 피연산자 값을 계산하는 표현식입니다.
C++20
7.2.1 가치 범주 *... prvalue는 평가에서 객체 또는 비트 필드를 초기화하거나, 표시되는 컨텍스트 또는 cv void 유형의 표현식에 지정된 연산자의 피연산자 값을 계산하는 표현식입니다.
나는 문구 변경 사항을 이해하고 약간의 조정이 이루어졌지만 나에게는 전체 정의가 변경되었습니다. 누군가 내가 이것을 이해하도록 도울 수 있습니까? 예를 들어, prvalue가 xvalue가 아닌 rvalue라는 문장이 왜 제거 되었습니까? 또는 왜 유용한 예가 제거 되었습니까?