Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何修复libstdc++';s'std::variant`(来自GCC 9.1)不使用Clang8?_C++_Clang_Clang++_Libstdc++ - Fatal编程技术网

C++ 如何修复libstdc++';s'std::variant`(来自GCC 9.1)不使用Clang8?

C++ 如何修复libstdc++';s'std::variant`(来自GCC 9.1)不使用Clang8?,c++,clang,clang++,libstdc++,C++,Clang,Clang++,Libstdc++,MSYS2的GCC包最近更新为9.1,但Clang不喜欢它附带的新的libstdc++头 编译以下简单程序时: #包括 int main() { 变异体x; } 我得到: # clang++ -std=c++17 foo.cpp In file included from foo.cpp:1: Z:\...\msys2\mingw64\include\c++\9.1.0\variant:1559:55: error: '__get' is missing exception specific

MSYS2的GCC包最近更新为9.1,但Clang不喜欢它附带的新的
libstdc++头

编译以下简单程序时:

#包括
int main()
{
变异体x;
}
我得到:

# clang++ -std=c++17 foo.cpp

In file included from foo.cpp:1:
Z:\...\msys2\mingw64\include\c++\9.1.0\variant:1559:55: error: '__get' is missing exception specification 'noexcept'
        friend constexpr decltype(auto) __detail::__variant::__get(_Vp&& __v);
                                                             ^
foo.cpp:5:30: note: in instantiation of template class 'std::variant<int, float>' requested here
    std::variant<int, float> x;
                             ^
Z:\...\msys2\mingw64\include\c++\9.1.0\variant:263:5: note: previous declaration is here
    __get(_Variant&& __v) noexcept
    ^
1 error generated.
#clang++-std=c++17 foo.cpp
在foo.cpp中包含的文件中:1:
Z:\…\msys2\mingw64\include\c++\9.1.0\variant:1559:55:错误:“\uu get”缺少异常规范“noexcept”
friend constexpr decltype(自动)uu详细信息::u变量::u获取(_Vp&&&uv);
^
foo.cpp:5:30:注意:在这里请求的模板类“std::variant”的实例化中
变异体x;
^
Z:\…\msys2\mingw64\include\c++\9.1.0\variant:263:5:注意:前面的声明在这里
__get(_Variant&&&u_v)无异常
^
生成1个错误。

在等待正式修复时,我按照Clang的建议做了,并在标题中添加了
noexcept

到目前为止,它似乎奏效了

此解决方案会导致任何问题吗?我应该做点别的吗?


如果您知道这是libstdc++错误还是叮当声错误,您将获得额外的积分。

修复是正确的。这是一个libstdc++错误,请参见和