Ticket #5419: assign_cxx0x.patch

File assign_cxx0x.patch, 3.3 KB (added by Michel MORIN <mimomorin@…>, 11 years ago)

A patch for boost/assign/list_of.hpp and libs/assign/test/. This patch includes the previous fixes.

  • boost/assign/list_of.hpp

     
    430430            return range( boost::begin(r), boost::end(r) );
    431431        }
    432432
    433         template< class Container >
     433        template
     434        <
     435            class Container
     436#ifndef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
     437          , class Dummy1 = typename Container::difference_type
     438          , class Dummy2 = typename Container::iterator
     439#endif
     440        >
    434441        operator Container() const
    435442        {
    436443            return this-> BOOST_NESTED_TEMPLATE convert_to_container<Container>();
     
    566573            return range( boost::begin(r), boost::end(r) );
    567574        }
    568575
    569         template< class Container >
     576        template
     577        <
     578            class Container
     579#ifndef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
     580          , class Dummy1 = typename Container::difference_type
     581          , class Dummy2 = typename Container::iterator
     582#endif
     583        >
    570584        operator Container() const
    571585        {
    572586            return this-> BOOST_NESTED_TEMPLATE convert_to_container<Container>();
  • libs/assign/test/list_inserter.cpp

     
    6464    make_list_inserter( functor() )( 4 ),2;
    6565
    6666    typedef void (vector<int>::* push_back_t)(const int&);
     67#if BOOST_WORKAROUND(__GNUC__, == 4) && (__GNUC_MINOR__ == 3) && defined(__GXX_EXPERIMENTAL_CXX0X__)
     68    push_back_t push_back_func = &vector<int>::push_back<const int&>;
     69#else
    6770    push_back_t push_back_func = &vector<int>::push_back;
     71#endif
    6872    make_list_inserter( boost::bind( push_back_func, &v, _1 ) )( 6 ),4;
    6973
    7074    BOOST_CHECK_EQUAL( v.size(), 2u );
  • libs/assign/test/std.cpp

     
    7575
    7676
    7777
    78 typedef pair<string,int> tuple;
     78typedef pair<string,int> two;
    7979
    8080template< class C >
    8181void test_tuple_sequence()
     
    151151    test_string_sequence< queue<string> >();             
    152152    test_string_sequence< priority_queue<string> >();   
    153153
    154     test_tuple_sequence< deque<tuple> >();             
    155     test_tuple_sequence< list<tuple> >();             
    156     test_tuple_sequence< vector<tuple> >();           
    157     test_tuple_sequence< set<tuple> >();               
    158     test_tuple_sequence< multiset<tuple> >();         
    159     test_tuple_sequence< stack<tuple> >();             
    160     test_tuple_sequence< queue<tuple> >();             
    161     test_tuple_sequence< priority_queue<tuple> >();   
     154    test_tuple_sequence< deque<two> >();             
     155    test_tuple_sequence< list<two> >();             
     156    test_tuple_sequence< vector<two> >();           
     157    test_tuple_sequence< set<two> >();               
     158    test_tuple_sequence< multiset<two> >();         
     159    test_tuple_sequence< stack<two> >();             
     160    test_tuple_sequence< queue<two> >();             
     161    test_tuple_sequence< priority_queue<two> >();   
    162162    test_tuple();
    163163   
    164164    deque<int>          di;