Chris@102
|
1 # /* **************************************************************************
|
Chris@102
|
2 # * *
|
Chris@102
|
3 # * (C) Copyright Edward Diener 2014.
|
Chris@102
|
4 # * Distributed under the Boost Software License, Version 1.0. (See
|
Chris@102
|
5 # * accompanying file LICENSE_1_0.txt or copy at
|
Chris@102
|
6 # * http://www.boost.org/LICENSE_1_0.txt)
|
Chris@102
|
7 # * *
|
Chris@102
|
8 # ************************************************************************** */
|
Chris@102
|
9 #
|
Chris@102
|
10 # /* See http://www.boost.org for most recent version. */
|
Chris@102
|
11 #
|
Chris@102
|
12 #ifndef BOOST_PREPROCESSOR_DETAIL_IS_EMPTY_HPP
|
Chris@102
|
13 #define BOOST_PREPROCESSOR_DETAIL_IS_EMPTY_HPP
|
Chris@102
|
14
|
Chris@102
|
15 #include <boost/preprocessor/punctuation/is_begin_parens.hpp>
|
Chris@102
|
16
|
Chris@102
|
17 #if BOOST_PP_VARIADICS_MSVC
|
Chris@102
|
18
|
Chris@102
|
19 # pragma warning(once:4002)
|
Chris@102
|
20
|
Chris@102
|
21 #define BOOST_PP_DETAIL_IS_EMPTY_IIF_0(t, b) b
|
Chris@102
|
22 #define BOOST_PP_DETAIL_IS_EMPTY_IIF_1(t, b) t
|
Chris@102
|
23
|
Chris@102
|
24 #else
|
Chris@102
|
25
|
Chris@102
|
26 #define BOOST_PP_DETAIL_IS_EMPTY_IIF_0(t, ...) __VA_ARGS__
|
Chris@102
|
27 #define BOOST_PP_DETAIL_IS_EMPTY_IIF_1(t, ...) t
|
Chris@102
|
28
|
Chris@102
|
29 #endif
|
Chris@102
|
30
|
Chris@102
|
31 #if BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400
|
Chris@102
|
32
|
Chris@102
|
33 #define BOOST_PP_DETAIL_IS_EMPTY_PROCESS(param) \
|
Chris@102
|
34 BOOST_PP_IS_BEGIN_PARENS \
|
Chris@102
|
35 ( \
|
Chris@102
|
36 BOOST_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C param () \
|
Chris@102
|
37 ) \
|
Chris@102
|
38 /**/
|
Chris@102
|
39
|
Chris@102
|
40 #else
|
Chris@102
|
41
|
Chris@102
|
42 #define BOOST_PP_DETAIL_IS_EMPTY_PROCESS(...) \
|
Chris@102
|
43 BOOST_PP_IS_BEGIN_PARENS \
|
Chris@102
|
44 ( \
|
Chris@102
|
45 BOOST_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C __VA_ARGS__ () \
|
Chris@102
|
46 ) \
|
Chris@102
|
47 /**/
|
Chris@102
|
48
|
Chris@102
|
49 #endif
|
Chris@102
|
50
|
Chris@102
|
51 #define BOOST_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(a, b) a ## b
|
Chris@102
|
52 #define BOOST_PP_DETAIL_IS_EMPTY_IIF(bit) BOOST_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(BOOST_PP_DETAIL_IS_EMPTY_IIF_,bit)
|
Chris@102
|
53 #define BOOST_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C(...) ()
|
Chris@102
|
54
|
Chris@102
|
55 #endif /* BOOST_PREPROCESSOR_DETAIL_IS_EMPTY_HPP */
|