【发布时间】:2015-09-30 04:21:34
【问题描述】:
通过值返回具有已删除复制构造函数的对象是否合法?例如,考虑一个具有std::unique_ptr 成员的对象。大多数编译器在按值返回此类对象时不会抱怨,因为在大多数情况下,编译器甚至不会查找复制构造函数。但是,由于标准不要求 (N)RVO,是否可以说此类程序是合法的?在这些情况下,返回声明中的std::move 是否符合标准要求?
【问题讨论】:
-
您可能认为这是重复的:stackoverflow.com/questions/32844948/…
-
而且你不需要移动,函数的结果无论如何都是一个r值。
标签: c++