id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 11001,insert_range lacks support for extensible associative sequences,brunocodutra@…,Aleksey Gurtovoy,"According to reference, the insert_range should work for any Extensible sequence or Extensible Associative sequence, but the following fails to compile. {{{ #include #include #include #include #include typedef boost::mpl::map, boost::mpl::pair > myMap; typedef boost::mpl::insert_range, boost::mpl::end >::type, myMap>::type copyOfMyMap; BOOST_MPL_ASSERT((boost::mpl::equal)); int main() { return 0; } }}} I tracked the issue down to the definition of insert_range_impl, whose default implementation assumes a front_inserter is defined for the given sequence, but neither Extensible nor every Extensible Associative sequences are required to also be a Front Extensible sequence: {{{ reverse_copy< joint_view< iterator_range::type,Pos> , joint_view< Range , iterator_range::type> > > , front_inserter< typename clear::type > > }}} I found the fix to be implementing insert_range_impl by means of insert, which is defined for every Extensible sequence, using fold to iterate: {{{ fold< joint_view< iterator_range::type,Pos> , joint_view< Range , iterator_range::type> > > , typename clear::type , insert<_1, end<_1>, _2> > }}} I'll file a pull request for this fix, any comments are welcome.",Bugs,new,To Be Determined,mpl,Boost 1.57.0,Problem,,"insert_range, map, associative",