8
gcc 7.1.1が含まれている最新のものにアーチlinuxシステムをアップデートしました。エラー発生時にコマンドをclang 4 build error on <functional> with C++ 1z
clang++ main.cpp -std=c++1z
結果を使用して
#include <functional>
int main(int argc, char** argv) {
return 1;
}
:これを構築しようとしている
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>;
が、これは私の一部に誤り、アーチLinux、または打ち鳴らしますか?
更新(バージョンを追加するのを忘れ)
- GCCパッケージバージョン7.1.1-2(++ DIRは/ usr /含む/ C提供)
- 打ち鳴らすパッケージバージョン4.0.0-3
clangのように見えるのは、控除ガイドをまだサポートしていないだけです。 – Barry
ああ、私はここで何が起こっているのか分かりませんでした(そして、それをC++ 17の特徴として忘れてしまった)。ありがとう! – ryan0270
ここで同じエラーが発生します。回避策を見つけましたか?私が見つけた唯一のものは、g ++に切り替えることでした.. –