deleted function

C++会给类型生成一些默认函数:默认构造函数、复制构造函数、赋值函数等等。如果你不想要这些函数,比如你的类型没有复制/赋值语义(比方说类成员有指针),你就会想把复制构造函数和赋值函数删掉

Blah(const Blah&) = delete;
Blah& operator=(const Blah&) = delete;

这样如果你不慎对着这个类进行了复制或者赋值操作,编译就会报错。

被删掉的函数是没有定义的,所以即使在多个编译单元出现,也不会被编译到各个单元的目标文件里,在链接时不会出现重定义问题。

ref: C++中,什么是delete function? - 知乎

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容