【发布时间】:2014-08-12 08:00:13
【问题描述】:
我正在编写一个 C++ 库,我想让我的 API 为无效参数抛出异常,但在使用 -fno-exceptions 编译代码时依赖断言。
有没有办法在编译时检测我是否被允许使用异常处理?
请注意,我正在编写一个仅包含标头的库,因此我没有configure 阶段,并且我无权访问构建系统来简单地在命令行上定义一个宏(和
我不想给用户增加负担)。
由于标准没有任何“-fno-exceptions”的概念,当然解决方案可能依赖于编译器。在这种情况下,我对同时使用 g++ 和 clang++ 的解决方案感兴趣,其他编译器对这个项目并不重要。
非常感谢
【问题讨论】: