]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/qvm/test/deduce_scalar_test.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / qvm / test / deduce_scalar_test.cpp
1 // Copyright 2008-2022 Emil Dotchevski and Reverge Studios, Inc.
2
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6 #ifdef BOOST_QVM_TEST_SINGLE_HEADER
7 # include BOOST_QVM_TEST_SINGLE_HEADER
8 #else
9 # include <boost/qvm/deduce_scalar.hpp>
10 #endif
11
12 template <class T,class U>
13 struct same_type;
14
15 template <class T>
16 struct
17 same_type<T,T>
18 {
19 };
20
21 template <class A,class B,class R>
22 struct
23 check
24 {
25 same_type<typename boost::qvm::deduce_scalar<A,B>::type,R> a;
26 same_type<typename boost::qvm::deduce_scalar<B,A>::type,R> b;
27 };
28
29 int
30 main()
31 {
32 check<signed char,signed char,signed char>();
33 check<signed char,signed short,signed short>();
34 check<signed char,signed int,signed int>();
35 check<signed char,signed long,signed long>();
36 check<signed char,unsigned char,unsigned char>();
37 check<signed char,unsigned short,unsigned short>();
38 check<signed char,unsigned int,unsigned int>();
39 check<signed char,unsigned long,unsigned long>();
40 check<signed char,float,float>();
41 check<signed char,double,double>();
42 check<signed short,signed short,signed short>();
43 check<signed short,signed int,signed int>();
44 check<signed short,signed long,signed long>();
45 check<signed short,unsigned short,unsigned short>();
46 check<signed short,unsigned int,unsigned int>();
47 check<signed short,unsigned long,unsigned long>();
48 check<signed short,float,float>();
49 check<signed short,double,double>();
50 check<signed int,signed int,signed int>();
51 check<signed int,signed long,signed long>();
52 check<signed int,unsigned int,unsigned int>();
53 check<signed int,unsigned long,unsigned long>();
54 check<signed int,float,float>();
55 check<signed int,double,double>();
56 check<signed long,signed long,signed long>();
57 check<signed long,unsigned long,unsigned long>();
58 check<signed long,float,float>();
59 check<signed long,double,double>();
60 check<unsigned char,unsigned char,unsigned char>();
61 check<unsigned char,unsigned short,unsigned short>();
62 check<unsigned char,unsigned int,unsigned int>();
63 check<unsigned char,unsigned long,unsigned long>();
64 check<unsigned char,float,float>();
65 check<unsigned char,double,double>();
66 check<unsigned short,unsigned short,unsigned short>();
67 check<unsigned short,unsigned int,unsigned int>();
68 check<unsigned short,unsigned long,unsigned long>();
69 check<unsigned short,float,float>();
70 check<unsigned short,double,double>();
71 check<unsigned int,unsigned int,unsigned int>();
72 check<unsigned int,unsigned long,unsigned long>();
73 check<unsigned int,float,float>();
74 check<unsigned int,double,double>();
75 check<unsigned long,unsigned long,unsigned long>();
76 check<unsigned long,float,float>();
77 check<unsigned long,double,double>();
78 check<float,float,float>();
79 check<float,double,double>();
80 check<double,double,double>();
81 }