25 #ifndef CRYPTO3_HASHED_HPP
26 #define CRYPTO3_HASHED_HPP
28 #include <boost/range/concepts.hpp>
29 #include <boost/range/adaptor/argument_fwd.hpp>
38 template<
typename HashAccumulator,
typename SinglePassRange>
41 BOOST_CONCEPT_ASSERT((boost::SinglePassRangeConcept<SinglePassRange>));
46 return HashImpl(r, HashAccumulator());
49 template<
typename HashAccumulator,
typename SinglePassRange>
52 BOOST_CONCEPT_ASSERT((boost::SinglePassRangeConcept<const SinglePassRange>));
57 return HashImpl(r, HashAccumulator());
60 template<
typename HashAccumulator,
typename SinglePassRange>
64 BOOST_CONCEPT_ASSERT((boost::SinglePassRangeConcept<SinglePassRange>));
69 return HashImpl(r, HashAccumulator());
76 template<
typename Hash,
typename HashAccumulator = accumulator_set<Hash>>
77 const hashes::detail::value_hash_impl<HashAccumulator>
78 hashed = hashes::detail::value_hash_impl<HashAccumulator>(HashAccumulator());
detail::range_hash_impl< detail::value_hash_impl< HashAccumulator > > operator|(SinglePassRange &r, const detail::value_hash_impl< HashAccumulator > &f)
Definition: hashed.hpp:40
Definition: hash_value.hpp:74
Definition: hash_value.hpp:59