Native/C++

c++0x rvalue reference

aucd29 2013. 10. 2. 19:06
http://vsts2010.tistory.com/59
http://blogs.msdn.com/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part-2.aspx


[code]
RValue Reference의 의해 임시 오브젝트를 만들어서 복사하지 않고 포인터의 이동에 의해 프로그램의 성능이 빨라지고 낭비가 없어집니다
[/code]

std::move()를 사용할 때 주의할 점

[code]
int main()
{
         vector<int> v1;

         v1.push_back(10);
         v1.push_back(12);

         vector<int> v2 = std::move(v1);

         cout << v1.size() << endl;
         cout << v2.size() << endl;


         return 0;
}
[/code]

이 후에는 v1의 크기는 0이 됩니다.



- Move semantics
move 생성자나 move 대입연산자를 정의하면 어떤 오브젝트에서 다른 오브젝트로 리소스를 이동 시킬 수 있습니다. 즉 오브젝트를 메모리상에서 다른 장소의 메모리로 이동 시키고 싶을 때 사용합니다


- Perfect Forwarding

이놈은 나중에 다시 봐야할 듯 -_ -;; 이해하기 힘듬..