I have the following template class (stripped down to contain only the relevant parts) with a method called Push written in C++ 11:
template<class T, int Capacity>
class CircularStack
{
private:
    std::array<std::unique_ptr<T>, Capacity> _stack;
public:
   void Push(std::unique_ptr<T>&& value)
   {
      //some code omitted that updates an _index member variable
      _stack[_index] = std::move(value);
   }
}
My question is:
Should I be using
std::moveorstd::forwardwithinPush?
I am not sure whether std::unique_ptr<T>&& qualifies as a universal reference and therefore should be using forward rather than move.
I am reasonably new to C++.
 
     
    