2011-10-02 7 views
17

por valor En este código de ejemplo:Constructor con el parámetro y noexcept

explicit MyClass(std::wstring text) noexcept; 

Es el uso de noexcept aquí correcta? wstring potencialmente puede lanzar en la construcción, pero ¿el lanzamiento ocurre antes de que estemos en el constructor o mientras estamos en el constructor?

EDITAR: Supongamos que se puede generalizar a cualquier función que tome un parámetro de valor por valor.

Respuesta

20

La construcción y destrucción de los parámetros de la función ocurre en el contexto de la persona que llama. Así que no, si la construcción de text arroja, eso no es una violación de noexcept.

Pronto la gente habría comentar y solicitar las especificaciones :) Así que me dará 5.2.2p4

La inicialización y destrucción de cada parámetro se produce en el contexto de la función de llamada .

Cuestiones relacionadas