]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/compute/include/boost/compute/type_traits/common_type.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / compute / include / boost / compute / type_traits / common_type.hpp
CommitLineData
7c673cae
FG
1//---------------------------------------------------------------------------//
2// Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@gmail.com>
3//
4// Distributed under the Boost Software License, Version 1.0
5// See accompanying file LICENSE_1_0.txt or copy at
6// http://www.boost.org/LICENSE_1_0.txt
7//
8// See http://boostorg.github.com/compute for more information.
9//---------------------------------------------------------------------------//
10
11#ifndef BOOST_COMPUTE_TYPE_TRAITS_COMMON_TYPE_HPP
12#define BOOST_COMPUTE_TYPE_TRAITS_COMMON_TYPE_HPP
13
14#include <boost/type_traits/common_type.hpp>
15
16#include <boost/compute/types/fundamental.hpp>
17
18namespace boost {
19
20/// \internal_
21#define BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPE(scalar, size) \
22 template<> \
23 struct common_type<BOOST_COMPUTE_MAKE_VECTOR_TYPE(scalar, size), \
24 BOOST_COMPUTE_MAKE_SCALAR_TYPE(scalar)> \
25 { \
26 typedef BOOST_COMPUTE_MAKE_VECTOR_TYPE(scalar, size) type; \
27 }; \
28 template<> \
29 struct common_type<BOOST_COMPUTE_MAKE_SCALAR_TYPE(scalar), \
30 BOOST_COMPUTE_MAKE_VECTOR_TYPE(scalar, size)> \
31 { \
32 typedef BOOST_COMPUTE_MAKE_VECTOR_TYPE(scalar, size) type; \
33 };
34
35/// \internal_
36#define BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(scalar) \
37 BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPE(scalar, 2) \
38 BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPE(scalar, 4) \
39 BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPE(scalar, 8) \
40 BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPE(scalar, 16) \
41
42BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(char)
43BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(uchar)
44BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(short)
45BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(ushort)
46BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(int)
47BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(uint)
48BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(long)
49BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(ulong)
50BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(float)
51BOOST_COMPUTE_DECLARE_SCALAR_VECTOR_COMMON_TYPES(double)
52
53} // end boost namespace
54
55#endif // BOOST_COMPUTE_TYPE_TRAITS_COMMON_TYPE_HPP