我试图在C ++中实现nd-array,例如python中的numpy,但我不知道如何处理“索引超出范围”之类的问题(或异常?)。我应该只使用assert来检查函数开头的参数,还是使用try / catch / throw机制?

顺便说一句,如果我使用断言,如何将错误消息(例如“输入索引超出范围”)打印给用户,而不是仅“断言第5行失败”断言。

我现在正在使用的宏来检查索引:

#define RANGE_CHECK(total, index) assert(total > index)

最佳答案

标准库使用的方法是从std::out_of_range抛出functions named at,并在functions named []中具有未定义的行为。

关于c++ - 实现nd数组时如何处理C++中的“超出范围”异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55455903/

10-11 15:19