// { dg-do run } | |
#include <typeinfo> | |
template <class T> | |
struct allocator { | |
typedef T* pointer; | |
template <class U> struct rebind { | |
typedef allocator<U> other; | |
}; | |
}; | |
template <class T, class Allocator> | |
struct alloc_traits | |
{ | |
typedef typename Allocator::template rebind<T>::other allocator_type; | |
}; | |
int main () | |
{ | |
typedef alloc_traits<int, allocator<void> >::allocator_type at; | |
return typeid (at) != typeid (allocator <int>); | |
} |