diff --git a/include/boost/range/detail/join_iterator.hpp b/include/boost/range/detail/join_iterator.hpp index 1020ebf..0f47f58 100644 --- a/include/boost/range/detail/join_iterator.hpp +++ b/include/boost/range/detail/join_iterator.hpp @@ -153,8 +153,12 @@ template::type >::type >::value, - typename add_const< - typename iterator_reference::type + typename add_reference< + typename add_const< + typename remove_reference< + typename iterator_reference::type + >::type + >::type >::type, typename iterator_reference::type >::type diff --git a/test/join.cpp b/test/join.cpp index 586f05c..300028b 100644 --- a/test/join.cpp +++ b/test/join.cpp @@ -277,6 +277,7 @@ namespace boost std::vector v2; std::vector joined; boost::push_back(joined, join(v1, v2)); + boost::push_back(joined, join(v2, v1)); } namespace trac7376