C++:Ref-qualifiers
레퍼런스 한정자(Reference qualifier)에 대한 내용 정리.
Reference qualifier는 &나 &&를 멤버함수 뒤에 붙여서 lvalue인 인스턴스와 rvalue인 인스턴스가 호출해야하는 함수를 직접 지정해주는 기능이다.
Example
#include <iostream>
struct Foo
{
int bar() & {return 1;}
int bar() && {return 2;}
int bar() const& {return 3;}
}
Foo f();
int main()
{
Foo foo1;
Foo const foo3;
std::cout << foo1.bar(); //1
std::cout << f().bar(); //2
std::cout << foo3.bar(); //3
}
Favorite site
- N2439: Extending move semantics to *this (revised wording)
- Andrzej's C++ blog: Ref-qualifiers 1
- Stackoverflow: What is "rvalue reference for *this"?
- Item 12: 오버라이딩 함수에 override를 선언하자
References
-
Ref-qualifiers_-_Andrzej's_C++_blog.pdf ↩