谷歌的C++风格指南说"我们不使用例外".关于异常的使用,风格没有提到STL.由于STL分配器可能会失败,它们如何处理容器抛出的异常?
push_back()map或map operator[]这样的STL方法不会返回任何状态代码.根据LLVM编码标准,"LLVM不使用[...]例外".但是,LLVM确实使用了C++的标准容器,例如std::vector.
LLVM如何在没有例外的情况下使用标准容器?它如何处理容器正常情况throw?例如,如果std::vector::push_back无法分配内存会发生什么情况throw std::bad_alloc呢?