или же лучше использовать второй вариант ?
`
class T;
class MyClass{
std::unique_ptr<T> m_uptrT;
public:
MyClass(){}
void test(){
std::unique_ptr<T> m_uptrPlayerTest = std::make_unique<T>();
setSourcePtr (std::move(m_uptrPlayerTest));
setSourcePtr2(std::move(m_uptrPlayerTest));
}
void setSourcePtr(std::unique_ptr<T>&& uptrPlayer){
m_uptrT = std::forward<std::unique_ptr<T>>(uptrPlayer);
}
void setSourcePtr2(std::unique_ptr<T> uptrPlayer){
m_uptrT = std::move(uptrPlayer);
}
};
`
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
А зачем ты передаешь не по значению Unic ptr?
Ну то есть да второй вариант лучше
В каком месте ? Правильно ли я понимаю, что в варианте №1 в промежутке существует только r-value ссылка, а варианте №2 в промежутке создается еще один std::unique_ptr<T>
forward вообще не для этого существует, но будет работать конечно
я про то, что std::unique_ptr<T>&& - это кринж, ибо setSourcePtr1(std::make_unique) не будет работать
Обсуждают сегодня