1 #ifndef SILICIUM_RANGE_VALUE_HPP
2 #define SILICIUM_RANGE_VALUE_HPP
5 #include <boost/range/algorithm/equal.hpp>
6 #include <boost/range/begin.hpp>
7 #include <boost/range/end.hpp>
8 #include <boost/functional/hash.hpp>
12 template <
class B
idirectionalRange>
27 template <
class B
idirectionalRange1,
class B
idirectionalRange2>
30 return boost::range::equal(left.
range, right.
range);
33 template <
class B
idirectionalRange>
35 #if !SILICIUM_COMPILER_HAS_AUTO_RETURN_TYPE
45 template <
class B
idirectionalRange>
46 struct hash<
Si::range_value<BidirectionalRange>>
auto make_range_value(BidirectionalRange &&range) -> range_value< typename std::decay< BidirectionalRange >::type >
Definition: range_value.hpp:34
std::remove_reference< T >::type && move(T &&ref)
Definition: move.hpp:10
BidirectionalRange range
Definition: range_value.hpp:15
Definition: absolute_path.hpp:352
Definition: absolute_path.hpp:19
BOOST_CONSTEXPR Iterator const & end(iterator_range< Iterator > const &range)
Definition: iterator_range.hpp:136
std::size_t operator()(Si::range_value< BidirectionalRange > const &value) const
Definition: range_value.hpp:48
range_value(BidirectionalRange range)
Definition: range_value.hpp:21
BOOST_CONSTEXPR Iterator const & begin(iterator_range< Iterator > const &range)
Definition: iterator_range.hpp:123
SILICIUM_USE_RESULT bool operator==(absolute_path const &left, ComparableToPath const &right)
Definition: absolute_path.hpp:169
Definition: range_value.hpp:13
range_value()
Definition: range_value.hpp:17