C++:Ref-qualifiers
lastmod 2018-08-17created 2015-06-185 edits
Notes on reference qualifiers (Reference qualifier).
A reference qualifier is a feature that appends & or && after a member function to directly specify which function an lvalue instance and an rvalue instance should call.
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: Declare overriding functions override
References
-
Ref-qualifiers_-_Andrzej's_C++_blog.pdf ↩