]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/vmd/detail/is_empty.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / vmd / detail / is_empty.hpp
1
2 // (C) Copyright Edward Diener 2011-2015
3 // Use, modification and distribution are subject to the Boost Software License,
4 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt).
6
7 #if !defined(BOOST_VMD_DETAIL_IS_EMPTY_HPP)
8 #define BOOST_VMD_DETAIL_IS_EMPTY_HPP
9
10 #include <boost/preprocessor/punctuation/is_begin_parens.hpp>
11
12 #if BOOST_VMD_MSVC
13
14 # pragma warning(once:4002)
15
16 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF_0(t, b) b
17 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF_1(t, b) t
18
19 #if BOOST_VMD_MSVC_V8
20
21 #define BOOST_VMD_DETAIL_IS_EMPTY_PROCESS(param) \
22 BOOST_PP_IS_BEGIN_PARENS \
23 ( \
24 BOOST_VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C param () \
25 ) \
26 /**/
27
28 #else
29
30 #define BOOST_VMD_DETAIL_IS_EMPTY_PROCESS(...) \
31 BOOST_PP_IS_BEGIN_PARENS \
32 ( \
33 BOOST_VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C __VA_ARGS__ () \
34 ) \
35 /**/
36
37 #endif
38
39 #else
40
41 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF_0(t, ...) __VA_ARGS__
42 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF_1(t, ...) t
43
44 #define BOOST_VMD_DETAIL_IS_EMPTY_PROCESS(...) \
45 BOOST_PP_IS_BEGIN_PARENS \
46 ( \
47 BOOST_VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C __VA_ARGS__ () \
48 ) \
49 /**/
50
51 #endif /* BOOST_VMD_MSVC */
52
53 #define BOOST_VMD_DETAIL_IS_EMPTY_PRIMITIVE_CAT(a, b) a ## b
54 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF(bit) \
55 BOOST_VMD_DETAIL_IS_EMPTY_PRIMITIVE_CAT(BOOST_VMD_DETAIL_IS_EMPTY_IIF_,bit) \
56 /**/
57
58 #define BOOST_VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C(...) ()
59 #define BOOST_VMD_DETAIL_IS_EMPTY_GEN_ZERO(...) 0
60
61 #endif /* BOOST_VMD_DETAIL_IS_EMPTY_HPP */