是否有正确或可接受的方式来处理调试/发布模式下的断言失败?
例如:假设我有一个返回 std::vector 的函数
我希望返回向量的长度等于另一个对象的长度,我这样做:
std::vector<int> v = get_stuff();
ASSERT(v.size() == this->size() )
a = v[this->size() - 1 ];
现在,如果没有触发断言,此代码将正常工作,并且在调试中这可能会崩溃,但至少我会有断言失败警告我有问题。问题出在发布模式下,会出现无声崩溃。这是否意味着我还必须在发布代码中检查此错误,然后进行处理?这是可能的,但是我认为在它上面添加断言失败没有意义,因为它已被处理