«perfect-forwarding» 태그된 질문

4
C ++ 11에서 T && (더블 앰퍼샌드)는 무엇을 의미합니까?
나는 C ++ 11의 새로운 기능 중 일부를 살펴 보았으며 내가 주목 한 것은 이중 앰퍼샌드와 같은 변수를 선언하는 것 T&& var입니다. 처음에,이 짐승은 무엇입니까? Google에서 이와 같은 구두점을 검색 할 수 있기를 바랍니다. 정확히 무엇을 의미합니까? 언뜻보기에는 이중 참조 인 것처럼 보이지만 (C 스타일 이중 포인터와 같은 T** var) …

6
std :: forward를 사용하는 주요 목적은 무엇이며 어떤 문제를 해결합니까?
완벽한 전달에서는 std::forward명명 된 rvalue 참조 t1와 t2명명되지 않은 rvalue 참조 로 변환하는 데 사용됩니다 . 그 목적은 무엇입니까? lvalue로 & 를 inner남겨두면 호출 된 함수에 어떤 영향을 미칩니 까?t1t2 template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); }

6
make_unique와 완벽한 전달
std::make_unique표준 C ++ 11 라이브러리에 함수 템플릿 이없는 이유는 무엇 입니까? 나는 찾는다 std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); 조금 장황하다. 다음이 훨씬 좋지 않을까요? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); 이것은 new멋지게 숨기고 유형을 한 번만 언급합니다. 어쨌든, 여기에 구현하려는 나의 시도는 make_unique다음 과 같습니다. template<typename T, typename... Args> std::unique_ptr<T> …


1
variadic 함수의 모든 인수에 대해 std :: forward를 어떻게 호출합니까?
난 그냥 일반 개체 팩토리를 작성하고 부스트 전 처리기 메타 라이브러리를 사용하여 가변 템플릿을 만들었습니다 (2010을 사용하고 지원하지 않음). 내 함수는 rval 참조를 사용하고 std::forward완벽한 포워딩을 수행하기 위해 C ++ 0X가 나오고 표준 컴파일러가있을 때 실제 가변 템플릿으로이 작업을 수행 할 것이라고 생각했습니다. 그래도 내가 std::forward논쟁을 불러 일으키겠습니까? template <typename …

1
요소를 완벽하게 전달하여 std :: vector를 목록 초기화 할 수 있습니까?
std :: vector의 집계 목록 초기화는 이동 이 더 적합 할 때 복사 초기화를 수행 한다는 것을 알았습니다 . 동시에 여러 emplace_backs가 원하는 것을 수행합니다. 나는 템플릿 함수를 작성하는이 불완전한 해결책을 생각 해낼 수 있었다 init_emplace_vector. 그러나 명시 적이 지 않은 단일 값 생성자에 대해서만 최적입니다 . template <typename T, …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.