带有按值参数的构造函数 &noexcept
Constructor with by-value parameter & noexcept
explicit MyClass(std::wstring text) noexcept;
这里使用noexcept
是否正确?wstring
可能会抛出构造函数,但抛出是在我们进入构造函数之前还是在我们进入构造函数时发生的?
编辑:假设这可以推广到任何接受按值参数的函数。
函数形参的构造和析构发生在调用者的上下文中。所以不,如果text
的构造抛出,那并不违反noexcept
。
很快人们就会评论并要求一个规格报价:)所以我给你5.2.2p4
类的上下文中进行每个形参的初始化和销毁调用函数。
相关文章:
- 为什么 std::map 的移动构造函数不是 noexcept?
- 查找所有移动构造函数和移动赋值运算符(特别是那些没有"noexcept"的运算符)
- 为什么noexcept move构造函数在向量重新分配期间没有被调用
- MSVC 2017中STL容器的移动构造函数未标记为NOExcept
- 对于具有抛出复制构造函数和noexcept-by-value复制赋值的类,is_nothrow_copy_assigna
- 是复制构造函数中初始值设定项列表中的make_unique不使用noexcept说明符的好用途
- 在向量中使用不带复制且没有 noexcept 移动构造函数的对象.实际损坏的内容以及我如何确认它
- is_nothrow_default_constructible具有noexcept(false)默认构造函数
- 如何声明包装器类型 X 的移动构造函数<T> noexcept 取决于is_nothrow_move_constructible<T>?
- 为什么 g++ 不发出这个与构造函数相关的 noexcept 启用"-fpic"的警告?
- 我应该声明我的异常的副本构造函数noexcept吗
- 具有 GCC 接受"noexcept"构造函数的程序,被 clang 拒绝
- 派生类构造函数上的Noexcept promise:可以在没有对基构造函数上的Noexcept进行承诺的情况下使用
- 对于默认定义的移动构造函数,noexcept的规则是什么
- 从 noexcept 函数参数的构造函数引发的异常会立即导致对 std::terminate() 的调用吗?
- 默认情况下是默认的构造函数/赋值noexcept/constexpr
- 默认情况下继承构造函数 noexcept(true)
- 确定抽象基类的构造函数是否为 noexcept
- 编译器何时将默认生成的构造函数标记为 noexcept
- 带有按值参数的构造函数 &noexcept