| // { dg-do compile { target c++11 } } |
| // { dg-options "-fcompare-debug" } |
| |
| typedef __SIZE_TYPE__ size_t; |
| namespace |
| { |
| template < typename _Tp, _Tp __v > struct integral_constant |
| { |
| static const _Tp value = __v; |
| }; |
| typedef integral_constant < bool, false > false_type; |
| template < typename > struct remove_cv; |
| template < typename > struct __is_void_helper:false_type |
| { |
| }; |
| template |
| < |
| typename |
| _Tp |
| > |
| struct |
| is_void:integral_constant |
| < bool, (__is_void_helper < typename remove_cv < _Tp >::type >::value) > |
| { |
| }; |
| template < typename > struct is_function:false_type |
| { |
| }; |
| template < typename _Tp > struct remove_const |
| { |
| typedef _Tp type; |
| }; |
| template < typename _Tp > struct remove_volatile |
| { |
| typedef _Tp type; |
| }; |
| template < typename _Tp > struct remove_cv |
| { |
| typedef |
| typename |
| remove_const < typename remove_volatile < _Tp >::type >::type type; |
| }; |
| template < typename > struct is_lvalue_reference:false_type |
| { |
| }; |
| template < typename _Tp, bool = is_void < _Tp >::value > struct __add_rvalue_reference_helper |
| { |
| typedef _Tp type; |
| }; |
| template |
| < |
| typename |
| _Tp > struct add_rvalue_reference:__add_rvalue_reference_helper < _Tp > |
| { |
| }; |
| template |
| < typename _Tp > typename add_rvalue_reference < _Tp >::type declval (); |
| template |
| < |
| typename, |
| typename |
| _To, bool = (is_function < _To >::value) > struct __is_convertible_helper; |
| template |
| < |
| typename |
| _From, typename _To > struct __is_convertible_helper <_From, _To, false > |
| { |
| static const bool __value = sizeof ((declval < _From > ())); |
| }; |
| template |
| < |
| typename |
| _From, |
| typename |
| _To |
| > |
| struct |
| is_convertible:integral_constant |
| < bool, __is_convertible_helper < _From, _To >::__value > |
| { |
| }; |
| template < bool, typename _Tp = void >struct enable_if |
| { |
| typedef _Tp type; |
| }; |
| template < typename _Tp > struct identity |
| { |
| typedef _Tp type; |
| }; |
| template |
| < |
| typename |
| _Tp |
| > |
| typename |
| enable_if |
| < |
| is_lvalue_reference |
| < _Tp >::value, _Tp >::type forward (typename identity < _Tp >::type) |
| { |
| return 0; |
| |
| } |
| template < class _T1, class > struct pair |
| { |
| _T1 first; |
| template < class _U1, class = typename enable_if < is_convertible < _U1, _T1 >::value >::type > pair (_U1 __x): |
| first |
| (forward < _U1 > (__x)) |
| { |
| } |
| }; |
| } |
| |
| namespace __gnu_cxx |
| { |
| template < typename > class new_allocator |
| { |
| }; |
| } |
| |
| namespace std |
| { |
| template < typename _Tp > class allocator:__gnu_cxx::new_allocator < _Tp > |
| { |
| public: |
| template < typename > struct rebind |
| { |
| typedef allocator other; |
| }; |
| }; |
| template < typename, typename > struct unary_function; |
| template < typename, typename, typename > struct binary_function |
| { |
| }; |
| template < typename _Tp > struct less:binary_function < _Tp, _Tp, bool > |
| { |
| }; |
| template |
| < |
| typename |
| _Pair |
| > struct _Select1st:unary_function < _Pair, typename _Pair::first_type > |
| { |
| }; |
| template < typename > struct _Rb_tree_node; |
| template |
| < |
| typename, |
| typename |
| _Val, |
| typename, |
| typename _Compare, typename _Alloc = allocator < _Val > >class _Rb_tree |
| { |
| typedef |
| typename |
| _Alloc::template |
| rebind < _Rb_tree_node < _Val > >::other _Node_allocator; |
| public: |
| typedef _Alloc allocator_type; |
| template < typename _Key_compare > struct _Rb_tree_impl |
| { |
| _Rb_tree_impl (_Key_compare, _Node_allocator); // { dg-warning "used but never defined" } |
| }; |
| _Rb_tree_impl < _Compare > _M_impl; |
| _Rb_tree (_Compare __comp, allocator_type __a): |
| _M_impl (__comp, __a) |
| { |
| } |
| }; |
| template < class _E > class initializer_list |
| { |
| typedef size_t size_type; |
| typedef _E *iterator; |
| iterator _M_array; |
| size_type _M_len; |
| }; |
| template |
| < |
| typename |
| _Key, |
| typename |
| _Tp, |
| typename |
| _Compare |
| = |
| less |
| < |
| _Key >, typename _Alloc = allocator < pair < _Key, _Tp > > >class multimap |
| { |
| typedef _Key key_type; |
| typedef pair < _Key, _Tp > value_type; |
| typedef _Compare key_compare; |
| typedef _Alloc allocator_type; |
| typedef |
| _Rb_tree |
| < |
| key_type, |
| value_type, _Select1st < value_type >, key_compare > _Rep_type; |
| _Rep_type _M_t; |
| public: |
| multimap (initializer_list < value_type >, _Compare __comp = _Compare (), allocator_type __a = allocator_type ()): |
| _M_t |
| (__comp, __a) |
| { |
| } |
| }; |
| } |
| |
| using namespace std; |
| void |
| test01 () |
| { |
| typedef multimap < int, double >Container; |
| Container ( |
| { |
| { |
| 1} |
| } |
| ); |
| } |