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