Конструктор с параметром по значению & noexcept - PullRequest
19 голосов
/ 02 октября 2011

В этом примере код:

explicit MyClass(std::wstring text) noexcept;

Правильно ли здесь использовать noexcept? wstring потенциально может генерировать конструкцию, но происходит ли генерация до того, как мы находимся в конструкторе или пока мы находимся в конструкторе?

РЕДАКТИРОВАТЬ: Предположим, что это может быть обобщено для любой функции, принимающей параметр по значению.

1 Ответ

22 голосов
/ 02 октября 2011

Построение и уничтожение параметров функции происходит в контексте вызывающей стороны.Так что нет, если конструкция text выбрасывает, это не является нарушением noexcept.

Скоро люди прокомментируют и попросят цитату спецификации :) Так что я дам вам 5.2.2p4

Инициализация и уничтожение каждого параметра происходит в контексте вызывающей функции,

...