Конструктор с параметром by-value & noexcept
В этом примере код:
explicit MyClass(std::wstring text) noexcept;
Правильно ли используется noexcept
? wstring
может потенциально бросать на конструкцию, но происходит ли это событие до того, как мы будем в конструкторе или когда мы находимся в конструкторе?
EDIT: предположим, что это можно обобщить на любую функцию, принимающую параметр by-value.
Ответы
Ответ 1
Конструкция и разрушение параметров функции происходит в контексте вызывающего. Так что нет, если построение text
бросает, это не является нарушением noexcept
.
Скоро люди будут комментировать и просить цитату из спецификации:) Итак, я дам вам 5.2.2p4
Инициализация и уничтожение каждого параметра происходит в контексте вызывающая функция.