为什么从不可移动类派生的类本身是可移动构造的?

根据 cppreference,从不可移动的类派生也应该使派生类不可移动。那么为什么std::is_move_constructible_v派生类会返回true呢?

class NonMovable{
    public:
        NonMovable(const NonMovable&) = default;
        NonMovable(NonMovable&&) = delete;
        
        NonMovable& operator = (const NonMovable&) = default;
        NonMovable& operator = (NonMovable&&) = delete;
        
        NonMovable() = default;
};

class Derived : public NonMovable{};

int main(){
    std::cout << std::is_move_constructible_v<NonMovable> << "n"; // 0
    std::cout << std::is_move_constructible_v<Derived> << "n"; // 1
}

以上是为什么从不可移动类派生的类本身是可移动构造的?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>