C++ 的假定精神是“你用什么,你付多少”。但是,由于异常及其在 STL 中的广泛使用,这可能会让人非常沮丧。
在任何人说“打开异常”之前,生活对我们必须生活的编程环境并不那么慷慨。我的是内核编程,其中执行环境没有提供足够的 C++ 运行时来展开堆栈等。
当 STL 容器无法为其底层后备存储重新分配存储时,它们将抛出分配失败异常。当环境中未启用异常时,程序将相当神秘地崩溃:我已经看到实现直接中止,或者只是假设分配有效,即使它没有。
我遇到的许多 C ADT 库通过返回错误代码或将错误作为输出参数来预先处理此问题。
处理这个问题的“最佳”C++ 方法是什么?
澄清
我不想使用标准库,我不能。我不是在问“我怎么做不能做的事”。我在问:“给定一个干净的石板,容器库应该如何构建。”