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
이놈은 나중에 다시 봐야할 듯 -_ -;; 이해하기 힘듬..
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
이놈은 나중에 다시 봐야할 듯 -_ -;; 이해하기 힘듬..