Constructor with by-value parameter & noexcept

雨燕双飞 提交于 2019-11-29 11:09:10

问题


In this example code:

explicit MyClass(std::wstring text) noexcept;

Is the use of noexcept here correct? wstring can potentially throw on construction but does the throw happen before we are in the constructor or while we are in the constructor?

EDIT: Suppose this can be generalised to any function taking a by-value parameter.


回答1:


The construction and destruction of function parameters happens in the context of the caller. So no, if the construction of text throws, that is not a violation of noexcept.

Soon folks would comment and ask for a spec quote :) So I will give you 5.2.2p4

The initialization and destruction of each parameter occurs within the context of the calling function.



来源:https://stackoverflow.com/questions/7628333/constructor-with-by-value-parameter-noexcept

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!