首页 文章

为什么在Coliru的Clang无法编译vector :: push_back?

提问于
浏览
0

See it here.该计划非常平凡,就像这样:

#include <vector>

std::vector<int> bombs;

int main()
{
    bombs.push_back(42); // compile errors
}

诊断对我来说没有多大意义:

在main.cpp中包含的文件中:1:在/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../中包含的文件中../include/c /8.1.0/vector:60:包含在/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../中的文件中.. /../../include/c /8.1.0/bits/stl_algobase.h:64:包含在/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1中的文件.0 /../../../../ include / c /8.1.0/bits/stl_pair.h:59:/usr/local/bin/../lib/gcc/x86_64中包含的文件-pc-linux-gnu / 8.1.0 /../../../../ include / c /8.1.0/bits/move.h:55:/usr/local/bin/../lib /gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/type_traits:1061:48:错误:'_ Tp'没有引用值:public bool_constant < is_assignable(_Tp,_Up)>
^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/type_traits:1059: 21:注意:这里声明模板<typename _Tp,typename _Up>
^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/type_traits:1061: 53:错误:_Up没有引用一个值:public bool_constant < is_assignable(_Tp,_Up)>
^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/type_traits:1059: 35:注意:这里声明模板<typename _Tp,typename _Up>
^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/type_traits:1062: 5:错误:期望的类名{};
^
在main.cpp中包含的文件中:1:在/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../中包含的文件中 . ./include/c /8.1.0/vector:63:/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../ . ./include/c /8.1.0/bits/stl_uninitialized.h:128:70:错误:std :: is_assignable中没有成员命名值<int&,int &&> const bool __assignable = is_assignable <_RefType2,_RefType1> ::值;

/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/bits/stl_uninitialized .  h:289:19:注意:在实例化函数模板特化时std :: uninitialized_copy <std :: move_iterator <int *>,int *>在这里请求{return std :: uninitialized_copy(__ first,__ last,__ result); }
^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/bits/stl_uninitialized .  h:310:19:注意:在实例化函数模板特化时std :: __ uninitialized_copy_a <std :: move_iterator <int *>,int *,int>这里请求返回std :: __ uninitialized_copy_a
^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/bits/vector .  tcc:446:13:注意:在实例化函数模板特化时std :: __ uninitialized_move_if_noexcept_a <int *,int *,std :: allocator <int >>这里请求= std :: __ uninitialized_move_if_noexcept_a
^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/bits/vector .  tcc:109:4:注意:在实例化函数模板特化时std :: vector <int,std :: allocator <int >>> _ _ M_realloc_insert <int>这里请求_M_realloc_insert(end(),std :: forward <_Args> (__args)...);
^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../../../include/c /8.1.0/bits/stl_vector .  h:1091:9:注意:在实例化函数模板特化时std :: vector <int,std :: allocator <int >>> emplace_back <int>这里请求{emplace_back(std :: move(__ x)); }
^
main.cpp:7:9:注意:在实例化成员函数std :: vector <int,std :: allocator <int >>> :: push_back这里请求bombs.push_back(42);
^
产生了4个错误 . 

与g编译相同,没有任何问题 . 我无法真正看到Coliru的Clang包含的图书馆 Headers ,以便自己计算出来 . 有没有人有任何想法有什么问题以及如何克服这个问题?

1 回答

  • 0

    我100%不会在Coliru看到一些奇怪的东西 . 它完美地在Wandbox完成,直到回到Clang 3.1

    根据donations page,您可以将此问题报告给[电子邮件地址编辑] .

相关问题