1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*=============================================================================
- Copyright (c) 2014 Christoph Weiss
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- ==============================================================================*/
- #include <string>
- #include <boost/core/lightweight_test.hpp>
- #include <boost/fusion/include/adapt_struct.hpp>
- #include <boost/fusion/sequence/hash.hpp>
- struct test_struct
- {
- 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;
- };
- BOOST_FUSION_ADAPT_STRUCT(
- test_struct,
- (bool, b)
- (int, i)
- (char, c)
- (std::string, s)
- )
- int main()
- {
- 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");
- 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));
- return boost::report_errors();
- }
|