gpt4 book ai didi

c++ - 使用 c++1z 在 上出现 clang 4 构建错误

转载 作者:可可西里 更新时间:2023-11-01 16:38:36 25 4
gpt4 key购买 nike

我刚刚将我的 arch linux 系统更新到最新版本,其中包括 gcc 7.1.1。尝试构建这个:

#include <functional>

int main(int argc, char** argv) {
return 1;
}

使用命令

clang++ main.cpp -std=c++1z

导致错误:

In file included from main.cpp:1:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/functional:60:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/unordered_map:47:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/bits/hashtable.h:37:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/bits/node_handle.h:39:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/optional:1032:27: error: use of class template 'optional'
requires template arguments
template <typename _Tp> optional(_Tp) -> optional<_Tp>;
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/optional:451:11: note: template is declared here
class optional
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/optional:1032:40: error: expected ';' at end of declaration
template <typename _Tp> optional(_Tp) -> optional<_Tp>;
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/optional:1032:41: error: cannot use arrow operator on a type
template <typename _Tp> optional(_Tp) -> optional<_Tp>;

这是我的错误,arch linux 还是 clang?

更新:(忘记添加版本)

  • gcc 包版本 7.1.1-2(提供/usr/include/c++ 目录)
  • clang 包版本 4.0.0-3

最佳答案

有点晚了,但我想总结一下。

这个:

template <typename _Tp> optional(_Tp) -> optional<_Tp>;

是演绎指南的例子。 Here你可以找到这个语言特性的很好的解释。

当使用 -std=c++17 或 c++1z 标志时,新版本的 libstdc++ 在其实现中使用它。不幸的是,Clang 还不支持这个特性。 Clang C++1z status page报告它仅在 SVN 上可用。

您可以找到 Arch Linux 的错误报告 here .

关于c++ - 使用 c++1z 在 <functional> 上出现 clang 4 构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44262236/

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