2013-06-22 2 views
1

я бродил по спецификации C++ (cplusplus.com) и обнаружил, что там нет ничего сказала о безопасности исключений для станда :: unordered_mapC++ unordered_map безопасность исключения

так в основном, если я пишу

map["foo"]=5; 

и исключение вызывается, потому что у меня нет памяти или bad_alloc, что я могу предположить о моей карте?

  • Осталось в допустимых данных? (основная гарантия)
  • Осталось без изменений? (сильная гарантия)
  • Осталось в неудовлетворительном состоянии? (Без гарантии)

ответ

4

23.2.4.1 гарантия безопасности Исключения [associative.reqmts.except]

2 Для ассоциативных контейнеров, если исключение каких-либо операции внутри вставки или функция устанавливать вставляя один элемент , вставка не имеет эффекта.

Этот параграф применяется к оператору индексирования. Таким образом:

  • Остается без изменений. (сильная гарантия)
+0

спасибо! Я подозревал, что это была сильная гарантия, но не могла найти никакой документации. – GameDeveloper