20

在此示例代码中:

explicit MyClass(std::wstring text) noexcept;

这里的使用noexcept正确吗?wstring可以潜在地在构造中抛出,但是抛出是在我们在构造函数之前还是在我们在构造函数中时发生?

编辑:假设这可以推广到任何采用按值参数的函数。

4

1 回答 1

22

函数参数的构造和销毁发生在调用者的上下文中。所以不,如果构造text抛出,那不是违反noexcept.

很快人们就会发表评论并要求提供规格报价:) 所以我会给你 5.2.2p4

每个参数的初始化和销毁​​发生在调用函数的上下文中。

于 2011-10-02T18:27:57.477 回答