我有我的程序用C++编写,它可以成功编译在Ubuntu 9.04与g ++ 4.3.4和Solaris OS与g ++ 3.4.3。现在我已经将我的Ubuntu升级到版本9.10和g ++到版本4.4.1。现在编译器调用STL中的错误。G ++ 4.4编译错误,低版本工作
/usr/include/c++/4.4/bits/stl_deque.h: In member function ‘void std::deque<_Tp, _Alloc>::swap(std::deque<_Tp, _Alloc>&)’:
In file included from /usr/include/c++/4.4/deque:65,
/usr/include/c++/4.4/bits/stl_deque.h:1404: error: ‘swap’ is not a member of ‘std’
/usr/include/c++/4.4/bits/stl_deque.h:1405: error: ‘swap’ is not a member of ‘std’
/usr/include/c++/4.4/bits/stl_deque.h:1406: error: ‘swap’ is not a member of ‘std’
/usr/include/c++/4.4/bits/stl_deque.h:1407: error: ‘swap’ is not a member of ‘std’
我不知道如何解决它,如果可能的话,STL包含一个错误。你能帮我吗?
非常感谢所有的建议。
包含文件丢失。从这里看起来它确实是std lib中的一个bug,但是也许你做错了。你能把它提炼成几行来重现错误并把它们写入你的问题吗? – sbi 2010-02-25 12:39:22
刚刚测试过:'#include int main(){std :: deque d1,d2; d1.swap(D2); }在ubuntu 9.10中,g ++ 4.4.1编译。你可以在编辑单元中显示包含的内容吗? –
2010-02-25 13:40:36