Если я создаю пустое std::vector
с использованием конструктора по умолчанию (и распределителя по умолчанию), может ли оно вызвать исключение?
В общем случае выделение пространства для элементов контейнера может вызвать исключение (который был бы std::bad_alloc
).Но конструктору по умолчанию std::vector
не требуется для выделения любого такого пространства;он может лениво выделять место при первой вставке или присваивании.Но требует ли стандарт C ++ , чтобы он не генерировал исключений (подразумевая ленивое распределение или перехват std::bad_alloc
и затем возвращаясь к ленивому распределению)?