没有匹配函数来调用"std::异常::异常(<大括号括起来的初始值设定项列表>)



我的项目构建在Windows(vc++17(上,我是Linux构建的新手,所以我不确定发生了什么。

我为我的项目创建了CMakeLists文件(具有C++17要求(,生成了makefile,然后我使用make尝试在Linux上构建它。错误为:

/home/julien/source/zipfs/zipfs/include/zipfs/zipfs_assert.h:30:70: error: no matching function for call to ‘std::exception::exception(<brace-enclosed initializer list>)’
30 |   zipfs_usage_error_t(const char* message) : std::exception{ message } {}
|                                                                      ^
In file included from /usr/include/c++/9/exception:38,
from /usr/include/c++/9/new:40,
from /usr/include/c++/9/ext/new_allocator.h:33,
from /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h:33,
from /usr/include/c++/9/bits/allocator.h:46,
from /usr/include/c++/9/string:41,
from /home/julien/source/zipfs/zipfs/include/zipfs/zipfs_path_t.h:3,
from /home/julien/source/zipfs/zipfs/include/zipfs/zipfs_error_t.h:3,
from /home/julien/source/zipfs/zipfs/source/zipfs_error_t.cpp:1:

被指控的代码是:

zipfs_usage_error_t(const char* message) : std::exception{ message } {}

我不明白这是怎么回事;这是c++版本不匹配吗?

std::exception不提供接受const char*参数的构造函数。

如果您正在使用的Windows标准库中存在一个,则它是该语言的不可移植扩展。

有许多派生类可以用作基类,它们确实支持此构造函数。

相关内容

  • 没有找到相关文章

最新更新