Vin*_*ent 4 c++ constructor default default-constructor c++11
考虑以下:
template <class T>
struct myclass
{
using value_type = T;
constexpr myclass() = default;
constexpr myclass(const myclass& other) = default;
constexpr myclass(const myclass&& other) = default;
T value;
};
Run Code Online (Sandbox Code Playgroud)
myclass<int> x;初始化的整数0?myclass<std::vector<int>> x;默认移动构造函数的作用是什么?它是否称为向量的移动构造函数?它们不等同于任何函数体.三种情况之间存在小但显着的差异:= default允许隐式生成,以及最近的等效函数体.
以下链接更详细地解释:
我找不到关于copy-constructor的好链接; 但是,其他两个链接中提到的类似考虑将适用.
myclass<int> x;不设置value到0.
默认的移动构造函数(如果你使它成为非const引用)移动每个可移动成员(虽然我认为有一个特殊情况,如果有一个不可移动的基类,奇怪的事情发生......)