Boost logo

Boost :

Subject: Re: [boost] [functional] How to avoid a dependency on functional?
From: Peter Dimov (lists_at_[hidden])
Date: 2015-01-09 15:30:45


> Beman Dawes wrote:
> > Filesystem has a dependency on <boost/functional/hash_fwd.hpp> in order
> > to supply this:
> >
> > inline std::size_t hash_value(const path& x)
> > {
> > # ifdef BOOST_WINDOWS_API
> > std::size_t seed = 0;
> > for(const path::value_type* it = x.c_str(); *it; ++it)
> > hash_combine(seed, *it == '/' ? L'\\' : *it);
> > return seed;
> > # else // BOOST_POSIX_API
> > return hash_range(x.native().begin(), x.native().end());
> > # endif
> > }
> ...
> > Is there any recommended way to avoid the functional dependency?
>
> In this specific case, I would forward-declare hash_combine and
> hash_range.

There is also the option of just returning hash_value( x.native() ). This
would require a forward declaration of hash_value for string.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk