C++ R-value Reference

2021. 3. 24. 10:35·SW개발/C++
반응형

R-value Reference

R-value

  • L-value와 달리 메모리 주소가 저장되지 않는 값을 의미한다.

예제

  • 주소를 가지고 있지 않은 리터럴 값이나 함수의 반환 값 등을 참조할 수 있다.

    #include <iostream>
    
    using namespace std;
    
    void        doSomething(int& ref)
    {
      cout << "L-value ref\n";
    }
    
    void        doSomething(int&& ref)
    {
      cout << "R-value ref\n";
    }
    
    int            getResult()
    {
      return 100 * 100;
    }
    
    int            main()
    {
      int x = 5;
      int y = getResult();
      const int cx = 6;
      const int cy = getResult();
    
      // L-value References
    
      int& lr1 = x;
      //int& lr2 = cx;
      //int& lr3 = 5;
    
      const int& lr4 = x;
      const int& lr5 = cx;
      const int& lr6 = 5;
    
    
// R-value references

//int&& rr1 = x;
//int&& rr2 = cx;
int&& rr3 = 5;
int&& rrr = getResult();

cout << rr3 << endl;
rr3 = 10;
cout << rr3 << endl;

//const int&& rr4 = x;
//const int&& rr5 = cx;
const int&& rr6 = 5;

doSomething(x);
doSomething(5);
doSomething(getResult());

}

/* stdout stderr
5
10
L-value ref
R-value ref
R-value ref
*/
```

반응형
저작자표시 (새창열림)

'SW개발 > C++' 카테고리의 다른 글

C++ 이동 생성자와 이동 대입 (Move Constructor and Move Assignment)  (0) 2021.03.24
C++ 출력 스트림 끊기  (0) 2021.03.24
C++ Syntax vs Semantics  (0) 2021.03.24
C++ 스마트 포인터 (Smart Pointer)  (0) 2021.03.22
C++ 따라하며 배우는 C++ 15장  (0) 2021.03.22
'SW개발/C++' 카테고리의 다른 글
  • C++ 이동 생성자와 이동 대입 (Move Constructor and Move Assignment)
  • C++ 출력 스트림 끊기
  • C++ Syntax vs Semantics
  • C++ 스마트 포인터 (Smart Pointer)
Caniro
Caniro
  • Caniro
    Minimalism
    Caniro
  • 전체
    오늘
    어제
    • 전체보기 (319)
      • SW개발 (268)
        • Java Spring (6)
        • C++ (186)
        • Python (21)
        • Linux (16)
        • 알고리즘 (13)
        • Git (4)
        • Embedded (1)
        • Raspberrypi (9)
        • React (3)
        • Web (2)
        • Windows Device Driver (6)
      • IT(개발아님) (46)
        • Windows (26)
        • MacOS (7)
        • Utility (11)
      • 챗봇 짬통 (0)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백기선
    mspaint
    logi options
    MacOS
    제외
    시스템 복구
    EXCLUDE
    spring
    스프링
    그림판
    SunOS 5.1
    윈도우 명령어
    맥북 카카오톡 알림 안뜸
    citrix workspace
    스프링 프레임워크 핵심 기술
    unix
    KakaoTalk
    Windows 11
    Solaris 10
    vscode
    로지텍 마우스 제스처
    dism
    윈도우
    java
    알림
    SFC
    windows
    Workspace
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Caniro
C++ R-value Reference
상단으로

티스토리툴바