Конструкторы перемещения и строгая гарантия исключений

Просто быстрый вопрос, по которому я не могу найти хорошую ссылку, особенно в отношении текущих реализаций будущего стандарта C ++ 0x.

Поскольку конструкторы перемещения могут генерировать , это означает, что некоторые стандартные библиотечные функции не могут обеспечить строгую гарантию исключения ( например, vector :: resize () ).

Было предложено: 1) сделать все конструкторы перемещения стандартной библиотеки "без броска" и 2) добавить проверки времени компиляции для пользователя код, чтобы гарантировать, что, например. std :: pair определяет конструктор перемещения без перемещения или вообще без конструктора перемещения.

Что случилось с этим предложением (особенно в отношении этот вопрос )? Как проблема «решена» в окончательном варианте?

Самое главное, что это означает для меня, когда я использую последнюю версию GCC или MSVC 10? Предоставляют ли эти реализации стандартной библиотеки строгую гарантию исключений, например. std :: vector :: resize () ?

РЕДАКТИРОВАТЬ: Я не видел этого вопроса , который явно связан. Если есть консенсус по поводу того, что мой вопрос дублирован, закройте его. Однако меня действительно интересует, что реализовано , а не то, что обсуждалось .

16
задан Community 23 May 2017 в 12:14
поделиться