在此示例代码中:
explicit MyClass(std::wstring text) noexcept;
这里noexcept
的用法正确吗?wstring
可能会在构造时抛出,但抛出是在我们进入构造函数之前还是在构造函数中发生的?
编辑:假设这可以推广到任何接受按值参数的函数。
发布于 2011-10-03 02:27:57
函数参数的构造和销毁发生在调用者的上下文中。所以不,如果text
的构造抛出,那并不违反noexcept
。
很快人们就会评论并要求规范引用:)所以我会给你5.2.2p4
每个参数的初始化和销毁都发生在调用函数的上下文中。
https://stackoverflow.com/questions/7628333
复制相似问题