]>
git.proxmox.com Git - ceph.git/blob - 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)
5 #include <boost/hana/core/to.hpp>
6 #include <boost/hana/equal.hpp>
9 namespace hana
= boost::hana
;
12 // This test makes sure that fundamental types are properly embedded in
13 // each other, when sensible.
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>{}, "");
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>{}, "");
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>{}, "");
41 #if CHAR_MIN < 0 // char is signed
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>{}, "");
48 static_assert(hana::equal('a', static_cast<signed int>('a')), "");
50 #else // char is unsigned
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>{}, "");
57 static_assert(hana::equal('a', static_cast<unsigned int>('a')), "");