forked from boostorg/range
[boost][range] - changed join_iterator reference type handling to address several user observations and failing clang builds.
[SVN r85691]
This commit is contained in:
@ -23,6 +23,10 @@
|
||||
#include <boost/range/empty.hpp>
|
||||
#include <boost/range/detail/demote_iterator_traversal_tag.hpp>
|
||||
#include <boost/range/value_type.hpp>
|
||||
#include <boost/type_traits/add_const.hpp>
|
||||
#include <boost/type_traits/add_reference.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
#include <boost/next_prior.hpp>
|
||||
|
||||
namespace boost
|
||||
@ -71,7 +75,9 @@ public:
|
||||
|
||||
Reference dereference(unsigned int selected) const
|
||||
{
|
||||
return selected ? *m_it2 : *m_it1;
|
||||
if (selected)
|
||||
return *m_it2;
|
||||
return *m_it1;
|
||||
}
|
||||
|
||||
bool equal(const join_iterator_union& other, unsigned int selected) const
|
||||
@ -143,12 +149,8 @@ template<typename Iterator1
|
||||
typename iterator_reference<Iterator2>::type
|
||||
>::type
|
||||
>::value,
|
||||
typename add_reference<
|
||||
typename add_const<
|
||||
typename remove_reference<
|
||||
typename iterator_reference<Iterator2>::type
|
||||
>::type
|
||||
>::type
|
||||
typename add_const<
|
||||
typename iterator_reference<Iterator1>::type
|
||||
>::type,
|
||||
typename iterator_reference<Iterator1>::type
|
||||
>::type
|
||||
|
Reference in New Issue
Block a user