Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 rvalue, lvalue, xvalue, glvalue 및 prvalue는 무엇입니까?


  • lvalue에는 프로그램이 액세스할 수 있는 주소가 있습니다. lvalue 표현식의 예로는 const 변수, 배열 요소, lvalue 참조를 반환하는 함수 호출, 비트 필드, 공용체 및 클래스 멤버를 포함한 변수 이름이 있습니다.
  • xvalue 표현식에는 주소가 없지만 표현식에 대한 액세스를 제공하는 rvalue 참조를 초기화하는 데 사용할 수 있습니다. 예에는 rvalue 참조, 배열 첨자 등을 반환하는 함수 호출이 포함됩니다.
  • glvalue("일반화된" lvalue)는 lvalue 또는 xvalue입니다.
  • rvalue(역사적으로 rvalue가 할당 표현식의 오른쪽에 나타날 수 있기 때문에 소위)는 xvalue, 임시 객체 또는 그 하위 객체, 또는 객체와 연결되지 않은 값입니다.
  • prvalue 표현식에는 프로그램에서 액세스할 수 있는 주소가 없습니다. prvalue 표현식의 예로는 리터럴, 비참조 유형을 반환하는 함수 호출이 있습니다.