C++11 - 우측값 참조. 함수의 가인수는 좌측값 참조이다

#include<iostream>

using namespace std;

void foo2( string& s) {
  cout << "lvalue" << endl;
};

void foo2( string&& s) {
  cout << "rvalue" << endl;
};

void foo( string& s) {
  foo2(s);
};
void foo( string&& s) {
  foo2(s);
};

int main()
{
  string s("s");

  foo2(string("hoge"));   // rvalue 출력
  
  foo(string("hoge"));   // lvalue 출력
  foo(s);    				// lvalue 출력
  foo(std::move(s));		// lvalue 출력

  return 0;
}

함수의 가인수 때는 Hoge&&를 받아도 좌측 값 참고로 된다.



출처: http://murasame-labo.hatenablog.com/entry/2017/03/30/201147


이 글은 2017-07-07에 작성되었습니다.