forked from boostorg/fusion
replaced tabs with 4 spaces
This commit is contained in:
@ -14,29 +14,29 @@
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
namespace hashing
|
||||
{
|
||||
struct hash_combine_fold
|
||||
{
|
||||
typedef std::size_t result_type;
|
||||
template<typename T>
|
||||
inline std::size_t operator()(std::size_t seed, T const& v)
|
||||
{
|
||||
boost::hash_combine(seed, v);
|
||||
return seed;
|
||||
}
|
||||
};
|
||||
namespace hashing
|
||||
{
|
||||
struct hash_combine_fold
|
||||
{
|
||||
typedef std::size_t result_type;
|
||||
template<typename T>
|
||||
inline std::size_t operator()(std::size_t seed, T const& v)
|
||||
{
|
||||
boost::hash_combine(seed, v);
|
||||
return seed;
|
||||
}
|
||||
};
|
||||
|
||||
template <typename Seq>
|
||||
inline typename
|
||||
boost::enable_if<traits::is_sequence<Seq>, std::size_t>::type
|
||||
hash_value(Seq const& seq)
|
||||
{
|
||||
return fold(seq, 0, hash_combine_fold());
|
||||
}
|
||||
}
|
||||
template <typename Seq>
|
||||
inline typename
|
||||
boost::enable_if<traits::is_sequence<Seq>, std::size_t>::type
|
||||
hash_value(Seq const& seq)
|
||||
{
|
||||
return fold(seq, 0, hash_combine_fold());
|
||||
}
|
||||
}
|
||||
|
||||
using hashing::hash_value;
|
||||
using hashing::hash_value;
|
||||
}}
|
||||
|
||||
#endif
|
||||
|
@ -13,46 +13,46 @@
|
||||
|
||||
struct test_struct
|
||||
{
|
||||
test_struct(bool bb, int ii, char cc, std::string const& ss) :
|
||||
b(bb),
|
||||
i(ii),
|
||||
c(cc),
|
||||
s(ss) {}
|
||||
test_struct(bool bb, int ii, char cc, std::string const& ss) :
|
||||
b(bb),
|
||||
i(ii),
|
||||
c(cc),
|
||||
s(ss) {}
|
||||
|
||||
bool b;
|
||||
int i;
|
||||
char c;
|
||||
std::string s;
|
||||
bool b;
|
||||
int i;
|
||||
char c;
|
||||
std::string s;
|
||||
};
|
||||
|
||||
BOOST_FUSION_ADAPT_STRUCT(
|
||||
test_struct,
|
||||
(bool, b)
|
||||
(int, i)
|
||||
(char, c)
|
||||
(std::string, s)
|
||||
test_struct,
|
||||
(bool, b)
|
||||
(int, i)
|
||||
(char, c)
|
||||
(std::string, s)
|
||||
)
|
||||
|
||||
int main()
|
||||
{
|
||||
using boost::fusion::hash_value;
|
||||
using boost::fusion::hash_value;
|
||||
|
||||
const test_struct a0(false, 1, 'c', "Hello Nurse"),
|
||||
a1(false, 1, 'c', "Hello Nurse"),
|
||||
b(true, 1, 'c', "Hello Nurse"),
|
||||
c(false, 0, 'c', "Hello Nurse"),
|
||||
d(false, 1, 'd', "Hello Nurse"),
|
||||
e(false, 1, 'c', "Hello World");
|
||||
const test_struct a0(false, 1, 'c', "Hello Nurse"),
|
||||
a1(false, 1, 'c', "Hello Nurse"),
|
||||
b(true, 1, 'c', "Hello Nurse"),
|
||||
c(false, 0, 'c', "Hello Nurse"),
|
||||
d(false, 1, 'd', "Hello Nurse"),
|
||||
e(false, 1, 'c', "Hello World");
|
||||
|
||||
BOOST_TEST(hash_value(a0) == hash_value(a1));
|
||||
BOOST_TEST(hash_value(a0) != hash_value(b));
|
||||
BOOST_TEST(hash_value(a0) != hash_value(c));
|
||||
BOOST_TEST(hash_value(a0) != hash_value(d));
|
||||
BOOST_TEST(hash_value(a0) != hash_value(e));
|
||||
BOOST_TEST(hash_value(b) != hash_value(c));
|
||||
BOOST_TEST(hash_value(b) != hash_value(d));
|
||||
BOOST_TEST(hash_value(b) != hash_value(d));
|
||||
BOOST_TEST(hash_value(c) != hash_value(d));
|
||||
BOOST_TEST(hash_value(c) != hash_value(e));
|
||||
BOOST_TEST(hash_value(d) != hash_value(e));
|
||||
BOOST_TEST(hash_value(a0) == hash_value(a1));
|
||||
BOOST_TEST(hash_value(a0) != hash_value(b));
|
||||
BOOST_TEST(hash_value(a0) != hash_value(c));
|
||||
BOOST_TEST(hash_value(a0) != hash_value(d));
|
||||
BOOST_TEST(hash_value(a0) != hash_value(e));
|
||||
BOOST_TEST(hash_value(b) != hash_value(c));
|
||||
BOOST_TEST(hash_value(b) != hash_value(d));
|
||||
BOOST_TEST(hash_value(b) != hash_value(d));
|
||||
BOOST_TEST(hash_value(c) != hash_value(d));
|
||||
BOOST_TEST(hash_value(c) != hash_value(e));
|
||||
BOOST_TEST(hash_value(d) != hash_value(e));
|
||||
}
|
||||
|
Reference in New Issue
Block a user