【发布时间】:2016-04-06 12:25:25
【问题描述】:
以下代码在 GCC 4.9.3 下引发错误。
#include <map>
using namespace std;
struct Movable {
Movable(const Movable&) = delete;
Movable(Movable&&) = default;
};
class Foo {
const map<int, Movable> m;
Foo(map<int, Movable>&& _m) : m{_m} {}
};
基础错误是use of deleted function 'Movable::Movable(const Movable&)'——但 AFAICS 不应该尝试复制基础 Movable。
【问题讨论】:
标签: c++ stl move-semantics move-constructor