1 /* { dg-do compile } */ 2 /* { dg-additional-options "-O1 -fnon-call-exceptions" } */ 3 4 template < typename _Tp > struct new_allocator 5 { 6 typedef _Tp * pointer; 7 template < typename > struct rebind 8 { 9 typedef new_allocator other; 10 }; 11 12 }; 13 14 template < typename _Tp > struct allocator:public new_allocator < _Tp > 15 {}; 16 17 template < typename _Tp, typename _Alloc > struct _Vector_base 18 { 19 typedef typename _Alloc::template rebind < _Tp >::other _Tp_alloc_type; 20 struct 21 { 22 typename _Tp_alloc_type::pointer _M_start; 23 typename _Tp_alloc_type::pointer _M_finish; 24 typename _Tp_alloc_type::pointer _M_end_of_storage; 25 }; 26 27 }; 28 29 template 30 < 31 typename 32 _Tp, 33 typename 34 _Alloc = allocator < _Tp > >struct vector:_Vector_base < _Tp, _Alloc > 35 { 36 typedef _Vector_base < _Tp, _Alloc > _Base; vectorvector37 vector ():_Base () 38 {} 39 ~vector (); 40 } 41 ; 42 struct LoadGraph 43 { 44 LoadGraph (int); 45 vector < struct _GdkColor >colors; 46 vector < float >data_block; 47 }; 48 LoadGraph(int)49LoadGraph::LoadGraph (int) 50 {} 51 52