1
이 기능을 사용하거나 사용하는 기능을 주로 이해하려고합니다. 어떤 전화가 다음 위치에 있는지 알 수 있습니다.멤버 함수에 l- 값 및 r- 값 참조 한정자를 허용하는 목적은 무엇입니까?
struct Foo
{
void bar() & {std::cout << "l-value"; }
void bar() && {std::cout << "r-value"; }
};
Foo f;
f.bar(); // calls l-value version
Foo().bar(); // call r-value version
그런 구분의 실제적인 용도는 무엇입니까?
함수를 호출하는 개체가 일시적이며 곧 삭제된다는 점을 알고 있으면 다른 동작을 선택할 수 있습니다 (예 : 딥 복사본 대신 일부 리소스를 이동하는 경우). [이 SO 스레드]에 몇 가지 예가 있습니다. (http://stackoverflow.com/questions/8610571/what-is-rvalue-reference-for-this) – jrok
@jrok 감사합니다. 나는 내가 다른 행동을 선택할 수 있다는 것을 이해했다. 그 행동이 무엇이고 그것이 무엇을 할 수 있는지 이해하려고 노력했다. JohannesD가 지적한 스레드의 대답은 정말 유용합니다. 다른 스레드에 대한 질문에 답변했습니다. [link] http://stackoverflow.com/questions/20717180/in-c-what-categories-lvalue-rvalue-xvalue-etc-can-expressions-that-prod. – CppNoob