내 클래스 A
의 생성자가 전달 된 Data
매개 변수의 소유권을 가져야한다는 것을 분명히하고 싶습니다.rvalue-reference로 매개 변수의 소유권 가져 오기
class A
{
public:
A(std::unique_ptr<Data> data) : _data(std::move(data)) { }
std::unique_ptr<Data> _data;
};
하지만, 내 사용 사례를 들어, 값 유형이 충분하기 때문에 Data
는, 포인터해야 할 이유가 없다 : 할 분명한 것은 값에 의해 unique_ptr
을합니다.
class A
{
public:
A(Data&& data) : _data(std::move(data)) { }
Data _data;
};
이이 작업을 수행하려면 거기에 더 나은 옵션을 소유 신호 나있는 유효한 방법입니다 : 내가 생각할 수있는 유일한 나머지 옵션은 Data
이 A
가 소유합니다 정말 명확하게 설명하기를 rvalue 참조로 패스입니다 unique_ptr
을 사용하지 않고?
왜 소유권을 소유합니까? –
나는 생성자를 명시 적으로 만들 것이다. –
@IvanRubinson 종속성 삽입과 같은 여러 가지 이유로 인해. –