]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/hana/test/integral_constant/udl.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / hana / test / integral_constant / udl.cpp
CommitLineData
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/integral_constant.hpp>
8#include <boost/hana/less.hpp>
9#include <boost/hana/negate.hpp>
10
11#include <type_traits>
12namespace hana = boost::hana;
13using namespace hana::literals;
14
15
16BOOST_HANA_CONSTANT_CHECK(0_c == hana::llong_c<0>);
17BOOST_HANA_CONSTANT_CHECK(1_c == hana::llong_c<1>);
18BOOST_HANA_CONSTANT_CHECK(12_c == hana::llong_c<12>);
19BOOST_HANA_CONSTANT_CHECK(123_c == hana::llong_c<123>);
20BOOST_HANA_CONSTANT_CHECK(1234567_c == hana::llong_c<1234567>);
21BOOST_HANA_CONSTANT_CHECK(-34_c == hana::llong_c<-34>);
22
23
24static_assert(std::is_same<
25 decltype(-1234_c)::value_type,
26 long long
27>{}, "");
28static_assert(-1234_c == -1234ll, "");
29BOOST_HANA_CONSTANT_CHECK(-12_c < 0_c);
30
31
32constexpr auto deadbeef = hana::llong_c<0xDEADBEEF>;
33
34//hexadecimal
35BOOST_HANA_CONSTANT_CHECK(deadbeef == 0xDEADBEEF_c);
36BOOST_HANA_CONSTANT_CHECK(deadbeef == 0xDeAdBeEf_c);
37BOOST_HANA_CONSTANT_CHECK(deadbeef == 0xdeadbeef_c);
38
39//decimal
b32b8144 40BOOST_HANA_CONSTANT_CHECK(deadbeef == hana::llong_c<3735928559>); // test the test
7c673cae
FG
41BOOST_HANA_CONSTANT_CHECK(deadbeef == 3735928559_c);
42
43//binary
b32b8144 44BOOST_HANA_CONSTANT_CHECK(deadbeef == hana::llong_c<0b11011110101011011011111011101111>); // test the test
7c673cae
FG
45BOOST_HANA_CONSTANT_CHECK(deadbeef == 0b11011110101011011011111011101111_c);
46
47//octal
b32b8144 48BOOST_HANA_CONSTANT_CHECK(deadbeef == hana::llong_c<033653337357>); // test the test
7c673cae
FG
49BOOST_HANA_CONSTANT_CHECK(deadbeef == 033653337357_c);
50
51BOOST_HANA_CONSTANT_CHECK(0x0_c == hana::llong_c<0>);
52BOOST_HANA_CONSTANT_CHECK(0b0_c == hana::llong_c<0>);
53BOOST_HANA_CONSTANT_CHECK(00_c == hana::llong_c<0>);
54
55BOOST_HANA_CONSTANT_CHECK(0x1_c == hana::llong_c<1>);
56BOOST_HANA_CONSTANT_CHECK(0b1_c == hana::llong_c<1>);
57BOOST_HANA_CONSTANT_CHECK(01_c == hana::llong_c<1>);
58
59BOOST_HANA_CONSTANT_CHECK(-0x1_c == hana::llong_c<-1>);
60BOOST_HANA_CONSTANT_CHECK(-0b1_c == hana::llong_c<-1>);
61BOOST_HANA_CONSTANT_CHECK(-01_c == hana::llong_c<-1>);
62
63BOOST_HANA_CONSTANT_CHECK(0x10_c == hana::llong_c<16>);
64BOOST_HANA_CONSTANT_CHECK(0b10_c == hana::llong_c<2>);
65BOOST_HANA_CONSTANT_CHECK(010_c == hana::llong_c<8>);
66
67BOOST_HANA_CONSTANT_CHECK(-0x10_c == hana::llong_c<-16>);
68BOOST_HANA_CONSTANT_CHECK(-0b10_c == hana::llong_c<-2>);
69BOOST_HANA_CONSTANT_CHECK(-010_c == hana::llong_c<-8>);
70
b32b8144
FG
71// digit separators
72static_assert(123'456 == 123456, ""); // test the test
73BOOST_HANA_CONSTANT_CHECK(123'456_c == hana::llong_c<123456>);
74
7c673cae 75int main() { }