]>
Commit | Line | Data |
---|---|---|
b32b8144 | 1 | // Copyright Louis Dionne 2013-2017 |
7c673cae FG |
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/find_if.hpp> | |
8 | #include <boost/hana/optional.hpp> | |
9 | ||
10 | #include <laws/base.hpp> | |
11 | namespace hana = boost::hana; | |
12 | using hana::test::ct_eq; | |
13 | ||
14 | ||
15 | int main() { | |
16 | ct_eq<2> x{}; | |
17 | ct_eq<3> y{}; | |
18 | ||
19 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
20 | hana::find_if(hana::just(x), hana::equal.to(x)), | |
21 | hana::just(x) | |
22 | )); | |
23 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
24 | hana::find_if(hana::just(x), hana::equal.to(y)), | |
25 | hana::nothing | |
26 | )); | |
27 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
28 | hana::find_if(hana::nothing, hana::equal.to(x)), | |
29 | hana::nothing | |
30 | )); | |
31 | ||
32 | // Previously, there was a bug that would make this fail. | |
33 | auto non_const_nothing = hana::nothing; | |
34 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
35 | hana::find_if(non_const_nothing, hana::equal.to(x)), | |
36 | hana::nothing | |
37 | )); | |
38 | } |