]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/test/integral_constant/udl.cpp
1 // Copyright Louis Dionne 2013-2017
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)
5 #include <boost/hana/assert.hpp>
6 #include <boost/hana/equal.hpp>
7 #include <boost/hana/integral_constant.hpp>
8 #include <boost/hana/less.hpp>
9 #include <boost/hana/negate.hpp>
11 #include <type_traits>
12 namespace hana
= boost::hana
;
13 using namespace hana::literals
;
16 BOOST_HANA_CONSTANT_CHECK(0_c
== hana::llong_c
<0>);
17 BOOST_HANA_CONSTANT_CHECK(1_c
== hana::llong_c
<1>);
18 BOOST_HANA_CONSTANT_CHECK(12_c
== hana::llong_c
<12>);
19 BOOST_HANA_CONSTANT_CHECK(123_c
== hana::llong_c
<123>);
20 BOOST_HANA_CONSTANT_CHECK(1234567_c
== hana::llong_c
<1234567>);
21 BOOST_HANA_CONSTANT_CHECK(-34_c
== hana::llong_c
<-34>);
24 static_assert(std::is_same
<
25 decltype(-1234_c
)::value_type
,
28 static_assert(-1234_c
== -1234ll, "");
29 BOOST_HANA_CONSTANT_CHECK(-12_c
< 0_c
);
32 constexpr auto deadbeef
= hana::llong_c
<0xDEADBEEF>;
35 BOOST_HANA_CONSTANT_CHECK(deadbeef
== 0xDEADBEEF_c
);
36 BOOST_HANA_CONSTANT_CHECK(deadbeef
== 0xDeAdBeEf_c
);
37 BOOST_HANA_CONSTANT_CHECK(deadbeef
== 0xdeadbeef_c
);
40 BOOST_HANA_CONSTANT_CHECK(deadbeef
== hana::llong_c
<3735928559>); // test the test
41 BOOST_HANA_CONSTANT_CHECK(deadbeef
== 3735928559_c
);
44 BOOST_HANA_CONSTANT_CHECK(deadbeef
== hana::llong_c
<0b11011110101011011011111011101111>); // test the test
45 BOOST_HANA_CONSTANT_CHECK(deadbeef
== 0b11011110101011011011111011101111_c
);
48 BOOST_HANA_CONSTANT_CHECK(deadbeef
== hana::llong_c
<033653337357>); // test the test
49 BOOST_HANA_CONSTANT_CHECK(deadbeef
== 033653337357_c
);
51 BOOST_HANA_CONSTANT_CHECK(0x0_c
== hana::llong_c
<0>);
52 BOOST_HANA_CONSTANT_CHECK(0b0_c
== hana::llong_c
<0>);
53 BOOST_HANA_CONSTANT_CHECK(00_c
== hana::llong_c
<0>);
55 BOOST_HANA_CONSTANT_CHECK(0x1_c
== hana::llong_c
<1>);
56 BOOST_HANA_CONSTANT_CHECK(0b1_c
== hana::llong_c
<1>);
57 BOOST_HANA_CONSTANT_CHECK(01_c
== hana::llong_c
<1>);
59 BOOST_HANA_CONSTANT_CHECK(-0x1_c
== hana::llong_c
<-1>);
60 BOOST_HANA_CONSTANT_CHECK(-0b1_c
== hana::llong_c
<-1>);
61 BOOST_HANA_CONSTANT_CHECK(-01_c
== hana::llong_c
<-1>);
63 BOOST_HANA_CONSTANT_CHECK(0x10_c
== hana::llong_c
<16>);
64 BOOST_HANA_CONSTANT_CHECK(0b10_c
== hana::llong_c
<2>);
65 BOOST_HANA_CONSTANT_CHECK(010_c
== hana::llong_c
<8>);
67 BOOST_HANA_CONSTANT_CHECK(-0x10_c
== hana::llong_c
<-16>);
68 BOOST_HANA_CONSTANT_CHECK(-0b10_c
== hana::llong_c
<-2>);
69 BOOST_HANA_CONSTANT_CHECK(-010_c
== hana::llong_c
<-8>);
72 static_assert(123'456 == 123456, ""); // test the test
73 BOOST_HANA_CONSTANT_CHECK(123'456_c
== hana::llong_c
<123456>);