1// { dg-do run } 2#include <typeinfo> 3 4template <class T> 5struct allocator { 6 typedef T* pointer; 7 8 template <class U> struct rebind { 9 typedef allocator<U> other; 10 }; 11}; 12 13template <class T, class Allocator> 14struct alloc_traits 15{ 16 typedef typename Allocator::template rebind<T>::other allocator_type; 17}; 18 19int main () 20{ 21 typedef alloc_traits<int, allocator<void> >::allocator_type at; 22 23 return typeid (at) != typeid (allocator <int>); 24} 25