или же лучше использовать второй вариант ?
                  
                  
                  `
                  
                  
                  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) не будет работать
Обсуждают сегодня