2011-03-12 2 views
14

컴파일러에서 을 사용하면 값 집계에 필요한 복사이 제거됩니까? 컴파일러는 movie1을 복사 할 필요가 없다는 어떤 상황이C++ 0x : 람다에 대한 값으로 캡처, 항상 사본?

vector<Image> movie1; 
apply([=movie1](){ return movie1.size(); }); 
  • 있습니까?
    • 아마도 컴파일러가 알 수있는 경우 apply은 실제로 이 아닙니다.movie1이 변경됩니까?
    • 또는 Lambda가 기본적으로 const 펑터 인 경우 도움이 될까요?
  • vector이동 생성자이동을 할당을 가지고 모든에 도움이됩니까?
    • 그렇다면 값 비싼 복사본을 방지하려면 여기에 Image을 추가해야합니까?
  • 메커니즘에 차이가있는 경우 및 사본에 의해 값 캡처값에 의한 인수에 비해 에 필요한 방법? 예. void operate(vector<Image> movie)?

답변