我读过,仅当已知类型由于强大的异常安全性而不会发出异常时, std::vector 擦除方法才使用移动操作。其他评论是,擦除方法保证基本或不抛出异常安全,具体取决于元素构造函数是否抛出。我无法在 C++11 草案中澄清这一点。我做了测试,它显示了基本的异常安全保证,它还使用了未标记为 noexcept 的移动构造函数。我是不是忽略了什么?什么是对的 ?
c++ vector c++11
c++ ×1
c++11 ×1
vector ×1