NJM*_*JMR 7 c++ c++11 cpp-core-guidelines guideline-support-library
我试图了解如何Ensures()在代码中使用.如示例中所示,如果我尝试使用Ensures()如下...
int main(void)
{
int result = 0;
// Some calculation
Ensures(result == 255);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果result变量不等于255,程序将使用以下输出崩溃"terminate called without an active exception".我的问题是如何Ensures()正确使用?
Som*_*ude 10
您使用的是Microsoft GSL实现吗?然后,如果你检查的gsl_assert.h头文件,你会看到,如果GSL_TERMINATE_ON_CONTRACT_VIOLATION被定义(这是默认值),然后Ensures将调用std::terminate它会给你你的错误.
如果要抛出异常(包含文件和行号信息),则需要GSL_THROW_ON_CONTRACT_VIOLATION在包含GSL之前进行定义.
至于如果你Ensures正确使用,那么你是.
| 归档时间: |
|
| 查看次数: |
2991 次 |
| 最近记录: |