看这里。节目很平淡无奇,像这样:
#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:注意:此处声明
template<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:注意:此处声明
template<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
中没有名为value
的成员
const bool __assignable = is_assignable<_RefType2, _RefType1>::value;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.1.0/../../include/c++/8.1.0/bits/stl_uninitialized.h:289:19:注意:在函数模板specializationstd::uninitialized_copy
的实例化中,此处请求
{ 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_copy_a
return 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
= 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
_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
在此处请求
{ emplace_back(std::move(__x)); }
^
main.cpp:7:9:注意:在成员函数std::vector
bombs.push_back(42);
^
生成4个错误。
G++编译时也一样,没有任何问题。我不能真的去看看Coliru的库头,包括编程的对象,我自己也搞不清楚。有没有人知道哪里出了问题,如何克服这个问题?
我百分之百不会担心这个,只是在科里鲁有些奇怪。它在Wandbox上工作得很好,回到Clang 3.1
根据捐款页面,你可能可以向[电子邮件地址编辑]报告这个问题。