Boost C++ 库

...世界上最受推崇和设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

Boost.Container 和 C++ 异常

在某些环境,例如游戏开发或嵌入式系统,C++ 异常被禁用或需要自定义的错误处理。根据文档 N2271 EASTL -- Electronic Arts 标准模板库,异常可能因以下几个原因而被禁用:

为了支持没有 C++ 异常支持的环境或具有特殊错误处理需求的环境,当定义了 BOOST_CONTAINER_USER_DEFINED_THROW_CALLBACKSBOOST_NO_EXCEPTIONS 时,Boost.Container 更改了错误信号行为。前者应由用户定义,后者可以由用户定义,也可以在编译器使用适当的标志(例如 GCC 中的 -fno-exceptions)调用时由 Boost.Confg 隐式定义。

当处理用户定义的类时,(例如,当构造用户定义的类时)

当库需要抛出异常时(例如,在 vector::at 中使用不正确的索引时抛出 out_of_range),库会调用在 boost/container/throw_exception.hpp 中声明的 throw-callback。


PrevUpHomeNext