微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在命名空间中找不到 gsl::fail_fast

如何解决在命名空间中找不到 gsl::fail_fast

在 C++ 契约的这个简单使用中,我得到了 error: no type named 'fail_fast' in namespace 'gsl'。 try 块会抛出 fast_fail 异常还是其他一些异常?

#define GSL_THROW_ON_CONTRACT_VIOLATION
#include <gsl/gsl>
#include <iostream>


int main(void)
{
    try {
        Expects(false);
    }
    catch(const gsl::fail_fast &e) {
        std::cout << "exception: " << e.what() << '\n';
    }
}

解决方法

GSL_THROW_ON_CONTRACT_VIOLATIONgsl::fast_fail 从以 release v3.0.0 开头的 Microsoft GSL 中删除。所有违反合同的行为都会导致调用 std::terminate,除非您在 MSVC 的内核模式下构建它调用 __fastfail

头文件 gsl_assert.h 只定义了 gsl::fail_fast 异常并定义了 GSL_THROW_ON_CONTRACT_VIOLATION。所以它现在编译? – 为劳瑞森服务

曾经有一段时间 gsl::fast_fail 仅在定义 GSL_THROW_ON_CONTRACT_VIOLATION 时才被定义,但是这在 #267 中被识别并随后在 #268 中修复。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?