What are the rules for noexcept on default defined move constructors?
问题 Especially in connection with std::vector it is important that types are noexcept movable when possible. So when declaring a move constructor = default like in struct Object1 { Object1(Object1 &&other) = default; }; std::is_nothrow_move_constructible<Object1>::value will be true as every member (0 here) of Object1 is nothrow-move-constructible, which is answered here. Yet what happens if the move copy constructor is only declared and then later = default defined like in the following code?