Q: C 11 표준 라이브러리에 중앙 집중식 make_unique 기능이 없는 이유는 무엇입니까?
많은 사람들이 고유 포인터가 불편합니다. 예를 들면 다음과 같습니다.
std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3));
다음과 같은 세련된 기능이 선호됩니다.
auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3);
Q: 여기 make_unique 구현 시도가 있지만 std::forward 관련 내용이 손상된 것 같습니다. 무엇을 하고 있으며 어떻게 사용되나요?
template<typename T, typename... Args> std::unique_ptr<T> make_unique(Args&&... args) { return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); }
A: C 11에서 std::make_unique가 누락된 것은 실수로 인정되어 C 14에 추가되었습니다.
std::forward
위 내용은 C 11에서 `std::make_unique`가 누락된 이유는 무엇이며, 구현 시 Perfect Forwarding은 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!