C++ 11에서는 불필요하게 개체를 복사하지 않도록하는 방법을 소개하고 그렇지 않으면 복사 할 때 해당 의미를 적용하기 위해 std::move
을 도입합니다. 그러나 사본이 필요한 경우도 있지만 기본값은 아닌 경우도 있습니다.누락 된 단항 std :: copy 최적의 구현
예를 들어 reverse
의 순진 구현을 고려하십시오. 범위 기반 for
은 완벽한 전달을 사용하므로 루프 내의 컨테이너를 수정하면 손상 될 수 있습니다.
auto out_iter = container.rbegin();
for (auto value : container) {
* out_iter ++ = value;
}
목표는 ... 그것은 간단한데이 사용
for (auto value : copy(container)) {
를 해결할 어떤 주장을 수용, 기본 유형을 얻고 임시 복사본을 반환하는 것입니다.
EDSL 람다 라이브러리에'에 대한 참조를 전달 ref' (). –