Является ли конструктор Move по умолчанию неопределенным?

Кажется, что вектор будет проверять, если конструктор перемещения помечен как noexcept, прежде чем принимать решение о перемещении или копировании элементов при перераспределении. Является ли конструктор перемещения по умолчанию как noexcept? Я видел следующую документацию, но она не указала это. http://en.cppreference.com/w/cpp/language/move_constructor

Неявно объявленный конструктор перемещения

Если для типа classа (структура, class или объединение) не предусмотрены определенные пользователем конструкторы перемещения, и все из них верны: нет конструкторов, объявленных пользователем, для которых нет объявленных пользователем операторов присваивания копий, нет объявленные пользователем операторы присваивания оператора отсутствуют объявленные пользователем деструкторы, неявно объявленный конструктор перемещения не определяется как удаленный из-за условий, описанных в следующем разделе, тогда компилятор объявит конструктор перемещения как встроенный публичный член своего classа с подпись T :: T (T &&) Класс может иметь несколько конструкторов перемещения, например, как T :: T (const T &&), так и T :: T (T &&). Если присутствуют некоторые пользовательские конструкторы перемещения, пользователь может по-прежнему принудительно генерировать неявно объявленный конструктор перемещения с ключевым словом default.

Я думаю, что ответ 15.4 / 14 (Исключения):

Конструктор наследования (12.9) и неявно объявленная специальная функция-член (раздел 12) имеют спецификацию исключения . Если f является наследующим конструктором или неявным объявленным конструктором по умолчанию, конструктором копирования, конструктором перемещения , деструктором, оператором присваивания копии или оператором присваивания перемещения, его неявная спецификация исключения указывает тип-идентификатор T тогда и только тогда, когда T разрешен исключение – спецификация функции, непосредственно вызываемой неявным определением f ; f разрешает все исключения, если любая функция, которую он вызывает напрямую, допускает все исключения, а f имеет спецификацию исключения noexcept(true) если каждая функция, которую он вызывает напрямую, не допускает исключений.

В основном, это делает то, что вы думаете, и неявно объявленный конструктор перемещения не noexcept всякий раз, когда это может быть.