]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/test/core/is_embedded.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / hana / test / core / is_embedded.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)
4
5 #include <boost/hana/core/to.hpp>
6 #include <boost/hana/equal.hpp>
7
8 #include <climits>
9 namespace hana = boost::hana;
10
11
12 // This test makes sure that fundamental types are properly embedded in
13 // each other, when sensible.
14
15 static_assert(hana::is_embedded<double, long double>{}, "");
16 static_assert(hana::is_embedded<float, long double>{}, "");
17 static_assert(hana::is_embedded<float, double>{}, "");
18
19 static_assert(hana::is_embedded<signed long, signed long long>{}, "");
20 static_assert(hana::is_embedded<signed int, signed long long>{}, "");
21 static_assert(hana::is_embedded<signed short, signed long long>{}, "");
22 static_assert(hana::is_embedded<signed char, signed long long>{}, "");
23 static_assert(hana::is_embedded<signed int, signed long>{}, "");
24 static_assert(hana::is_embedded<signed short, signed long>{}, "");
25 static_assert(hana::is_embedded<signed char, signed long>{}, "");
26 static_assert(hana::is_embedded<signed short, signed int>{}, "");
27 static_assert(hana::is_embedded<signed char, signed int>{}, "");
28 static_assert(hana::is_embedded<signed char, signed short>{}, "");
29
30 static_assert(hana::is_embedded<unsigned long, unsigned long long>{}, "");
31 static_assert(hana::is_embedded<unsigned int, unsigned long long>{}, "");
32 static_assert(hana::is_embedded<unsigned short, unsigned long long>{}, "");
33 static_assert(hana::is_embedded<unsigned char, unsigned long long>{}, "");
34 static_assert(hana::is_embedded<unsigned int, unsigned long>{}, "");
35 static_assert(hana::is_embedded<unsigned short, unsigned long>{}, "");
36 static_assert(hana::is_embedded<unsigned char, unsigned long>{}, "");
37 static_assert(hana::is_embedded<unsigned short, unsigned int>{}, "");
38 static_assert(hana::is_embedded<unsigned char, unsigned int>{}, "");
39 static_assert(hana::is_embedded<unsigned char, unsigned short>{}, "");
40
41 #if CHAR_MIN < 0 // char is signed
42
43 static_assert(hana::is_embedded<char, signed long long>{}, "");
44 static_assert(hana::is_embedded<char, signed long>{}, "");
45 static_assert(hana::is_embedded<char, signed int>{}, "");
46 static_assert(hana::is_embedded<char, signed short>{}, "");
47
48 static_assert(hana::equal('a', static_cast<signed int>('a')), "");
49
50 #else // char is unsigned
51
52 static_assert(hana::is_embedded<char, unsigned long long>{}, "");
53 static_assert(hana::is_embedded<char, unsigned long>{}, "");
54 static_assert(hana::is_embedded<char, unsigned int>{}, "");
55 static_assert(hana::is_embedded<char, unsigned short>{}, "");
56
57 static_assert(hana::equal('a', static_cast<unsigned int>('a')), "");
58
59 #endif
60
61
62 int main() { }