编译器生成的移动成员在静态数据成员上功能

Compiler-generated move member functions on static data members

本文关键字:静态 数据成员 功能 成员 移动 编译器      更新时间:2023-10-16

在有效的现代C 中,项目17(了解特殊会员功能Scott Meyers发电(说,生成的特殊移动成员函数(移动构造函数和移动分配运算符(在类的非静态数据成员的非静态数据成员上执行"成员移动"。 blockquote>

仅在需要时生成移动操作,并且在生成时,它们会在类的非静态数据成员上执行"成员移动"。

我试图理解非静态状况,但我不能,谁能向我解释为什么他们不能在静态数据成员上执行它?

,因为静态成员不是该类创建的对象的一部分。尽管不需要移动(或在复制构造函数的情况下复制(。

我认为它只是引用静态成员,如下所示:

struct A{
   static int s; // static member, (not moved or copied when moving/copying an instance
   int w; // non-static member
};