Arch linux sistemimi gcc 7.1.1 içeren en yeni sürüme güncelledim. yanlışlıkla komutunuclang 4 C++ 1z ile <functional> üzerinde yapı hatası
clang++ main.cpp -std=c++1z
sonuçlarını kullanarak
#include <functional>
int main(int argc, char** argv) {
return 1;
}
: Bu inşa etmek çalışılıyor
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>;
bu bir benim açımdan hata, kemer linux veya çınlama var mı?
Güncelleme:
- gcc paket versiyonu 7.1.1-2 (sağlar/usr/include/C++ dir)
- clang paket versiyonu (versiyonlarını eklemeyi unuttuğu) 4.0.0-3
Clang henüz kesinti kılavuzlarını desteklemiyor gibi görünüyor. – Barry
Ah, Burada olup bitenlerin farkında değildim (ve bunu C++ 17'nin bir özelliği olarak unuttum). Teşekkürler! – ryan0270
Aynı hata burada. Herhangi bir geçici çözüm buldunuz mu? Bulduğum tek şey g ++ 'ya geçmek oldu. –