gpt4 book ai didi

c++ - Ensures() - 指南支持库

转载 作者:可可西里 更新时间:2023-11-01 18:27:08 26 4
gpt4 key购买 nike

我想了解如何在代码中使用 Ensures()。正如 example 中给出的那样,如果我尝试使用 Ensures() 如下...

int main(void)
{
int result = 0;
// Some calculation
Ensures(result == 255);
return 0;
}

如果result 变量不等于255,程序会崩溃并输出以下“terminate called without an active exception”。我的问题是如何正确使用 Ensures()

最佳答案

您使用的是 Microsoft GSL implementation ?那么如果你检查 the gsl_assert.h header file您会看到,如果定义了 GSL_TERMINATE_ON_CONTRACT_VIOLATION(这是默认设置),则 Ensures 将调用 std::terminate这会给你你得到的错误。

如果您希望抛出异常(包含文件和行号信息),那么您需要在包含 GSL 之前定义 GSL_THROW_ON_CONTRACT_VIOLATION

至于你是否正确地使用了 Ensures,那么是的。


2021 年更新

GSL_TERMINATE_ON_CONTRACT_VIOLATION 已删除,始终调用 terminate()

关于c++ - Ensures() - 指南支持库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36349523/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com