[Bug c++/11972] New: Problems with allocator::rebind::other
gcc-bugzilla at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Aug 18 21:13:00 GMT 2003
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11972
Summary: Problems with allocator::rebind::other
Product: gcc
Version: 3.4
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: poschmid at lbl dot gov
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
The code a.C is rejected by gcc 3.4. This breaks some parts of boost.
Environment:
System: Linux linux 2.4.20-4GB #1 Fri Jul 11 07:33:18 UTC 2003 i686 unknown unknown GNU/Linux
Architecture: i686
SuSE 8.2
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --enable-threads=posix --enable-languages=c,c++,f77,objc --enable-__cxa_atexit --enable-debug
How-To-Repeat:
source code a.C
template<typename _Tp>
class allocator
{
template<typename _Tp1>
struct rebind
{ typedef allocator<_Tp1> other; };
allocator() throw() { }
allocator(const allocator&) throw() { }
template<typename _Tp1>
allocator(const allocator<_Tp1>&) throw() { }
};
template<typename T>
void f()
{
typedef allocator<int> alloc1_t;
typedef typename alloc1_t::template rebind<double> binder_t;
typedef typename binder_t::other alloc2_t;
alloc1_t a1;
alloc2_t a3(a1);
}
g++ -v -W -Wall a.C
Reading specs from /usr/local/lib/gcc/i686-pc-linux-gnu/3.4/specs
Configured with: ../gcc/configure --enable-threads=posix --enable-languages=c,c++,f77,objc --enable-__cxa_atexit --enable-debug
Thread model: posix
gcc version 3.4 20030806 (experimental)
/usr/local/libexec/gcc/i686-pc-linux-gnu/3.4/cc1plus -quiet -v -D_GNU_SOURCE a.C -quiet -dumpbase a.C -mtune=pentiumpro -auxbase a -W -Wall -version -o /tmp/ccW5FFki.s
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/lib/gcc/i686-pc-linux-gnu/3.4/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/lib/gcc/i686-pc-linux-gnu/3.4/../../../../include/c++/3.4
/usr/local/lib/gcc/i686-pc-linux-gnu/3.4/../../../../include/c++/3.4/i686-pc-linux-gnu
/usr/local/lib/gcc/i686-pc-linux-gnu/3.4/../../../../include/c++/3.4/backward
/usr/local/include
/usr/local/lib/gcc/i686-pc-linux-gnu/3.4/include
/usr/include
End of search list.
GNU C++ version 3.4 20030806 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version 3.4 20030806 (experimental).
GGC heuristics: --param ggc-min-expand=47 --param ggc-min-heapsize=31899
a.C: In function `void f()':
a.C:22: error: no type named `other' in `struct f()::binder_t'
a.C:22: error: ISO C++ forbids declaration of `alloc2_t' with no type
Compilation exited abnormally with code 1 at Wed Aug 13 00:49:53
More information about the Gcc-bugs
mailing list