Bug 6250

Summary: ошибка в определении deque
Product: Sisyphus Reporter: pal <pal>
Component: boost-develAssignee: Alexey Voinov <voins>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P2 CC: iv, sem
Version: unstable   
Hardware: all   
OS: Linux   

Description pal 2005-03-11 18:37:49 MSK
[17:32:48 pal@underdark ~/tmp]$ g++ --version
i586-alt-linux-g++ (GCC) 3.4.3 20050221 (ALT Linux, build 3.4.3-alt5)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[17:26:52 pal@underdark ~/tmp]$ cat c.cpp 
#include <deque>
#include <boost/lambda/lambda.hpp>

[17:30:54 pal@underdark ~/tmp]$ g++ -c -D_GLIBCXX_DEBUG c.cpp 
In file included from /usr/include/boost/lambda/lambda.hpp:23,
                 from c.cpp:2:
/usr/include/boost/lambda/detail/operator_return_type_traits.hpp:908: error: use
of `deque' is ambiguous
/usr/include/boost/lambda/detail/operator_return_type_traits.hpp:871: error:  
first declared as `template<class T, class Allocator> struct std::deque' here
/usr/lib/gcc/i586-alt-linux/3.4.3/../../../../include/c++/3.4.3/debug/deque:42:
error:   also declared as `template<class _Tp, class _Allocator> class
__gnu_debug_def::deque' here
.....
а там

-------------------------
// The GCC 2.95.x uses a non-conformant deque
#if BOOST_WORKAROUND(__GNUC__, == 2) && __GNUC_MINOR__ <= 96
#include <deque>
#else

namespace std {
  template <class T, class Allocator> class deque;
}

#endif

#if BOOST_WORKAROUND(__GNUC__, == 3) && __GNUC_MINOR__ >=4
#include <vector>
#include <map>
#else

namespace std {
 template <class T, class Allocator> class vector;
 template <class Key, class T, class Cmp, class Allocator> class map;
 template <class Key, class T, class Cmp, class Allocator> class multimap;
}

#endif
--------------------

как видим, 3.4 при -D_GLIBCXX_DEBUG тоже не особо conformant
собственно, не только с deque

я пока руками поправлю, но надо бы в апстрим пробить
Comment 1 Igor Zubkov 2006-09-13 01:16:47 MSD
Ещё актуально?
Comment 2 pal 2006-09-13 19:41:56 MSD
нет