是否有必要为没有动态资源的类实现移动构造函数?

我有一个如下所示的容器类。如您所见,该类使用的所有资源都是静态分配的。类中没有动态分配的资源。这样的类是否需要移动构造函数或移动赋值运算符?

template<class T, std::size_t SIZE>
class Stack{
    static_assert(SIZE != 0, "Stack capacity cannot be zero!");

public:
    /*** Constructors and Destructor ***/
    Stack() = default;             // Default constructor
    Stack(const Stack& copyStack); // Copy constructor
    ~Stack();                      // Destructor

    /*** Member Methods ***/
    /* .... */
    void swap(Stack& swapStack);

private:
    /*** Members ***/
    std::size_t idxTop{0};   // Index after the top element
    T data[SIZE];            // Contained data
};

对于那些想通过实际实现进行尝试的人:

  • 模板栈容器源码
  • GodBolt 上的可执行代码
以上是是否有必要为没有动态资源的类实现移动构造函数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>