1// Copyright Louis Dionne 2013-2022
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
4
5#include <boost/hana/assert.hpp>
6#include <boost/hana/equal.hpp>
7#include <boost/hana/experimental/types.hpp>
8#include <boost/hana/not.hpp>
9namespace hana = boost::hana;
10
11
12template <int> struct x;
13
14int main() {
15 BOOST_HANA_CONSTANT_CHECK(hana::equal(
16 hana::experimental::types<>{},
17 hana::experimental::types<>{}
18 ));
19
20 BOOST_HANA_CONSTANT_CHECK(hana::equal(
21 hana::experimental::types<x<0>>{},
22 hana::experimental::types<x<0>>{}
23 ));
24
25 BOOST_HANA_CONSTANT_CHECK(hana::equal(
26 hana::experimental::types<x<0>, x<1>, x<2>>{},
27 hana::experimental::types<x<0>, x<1>, x<2>>{}
28 ));
29
30 BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
31 hana::experimental::types<>{},
32 hana::experimental::types<x<0>>{}
33 )));
34
35 BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
36 hana::experimental::types<x<0>>{},
37 hana::experimental::types<>{}
38 )));
39
40 BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
41 hana::experimental::types<x<0>>{},
42 hana::experimental::types<x<1>>{}
43 )));
44
45 BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
46 hana::experimental::types<x<0>, x<1>, x<2>>{},
47 hana::experimental::types<x<0>, x<1>, x<3>>{}
48 )));
49
50 BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
51 hana::experimental::types<x<0>, x<1>, x<2>>{},
52 hana::experimental::types<x<0>, x<1>>{}
53 )));
54
55 BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
56 hana::experimental::types<x<0>, x<1>, x<2>>{},
57 hana::experimental::types<x<0>, x<9>, x<2>>{}
58 )));
59}
60

source code of boost/libs/hana/test/experimental/types/equal.cpp