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_IS_TYPE_HPP)
8#define BOOST_VMD_IS_TYPE_HPP
9
10#include <boost/vmd/detail/setup.hpp>
11
12#if BOOST_PP_VARIADICS
13
14#include <boost/vmd/detail/is_type.hpp>
15
16/*
17
18 The succeeding comments in this file are in doxygen format.
19
20*/
21
22/** \file
23*/
24
25/** \def BOOST_VMD_IS_TYPE(sequence)
26
27 \brief Tests whether a sequence is a VMD type.
28
29 sequence = a possible VMD type
30
31 returns = 1 if the sequence is a VMD type,
32 0 if it is not.
33
34 If the sequence is not a VMD data type this macro could lead to
35 a preprocessor error. This is because the macro
36 uses preprocessor concatenation to determine if the sequence
37 is an identifier once it is determined that the sequence does not
38 start with parentheses. If the data being concatenated would
39 lead to an invalid preprocessor token the compiler can issue
40 a preprocessor error.
41
42*/
43
44#define BOOST_VMD_IS_TYPE(sequence) \
45 BOOST_VMD_DETAIL_IS_TYPE(sequence) \
46/**/
47
48/** \def BOOST_VMD_IS_TYPE_D(d,sequence)
49
50 \brief Tests whether a sequence is a VMD type. Re-entrant version.
51
52 d = The next available BOOST_PP_WHILE iteration.
53 sequence = a possible VMD type
54
55 returns = 1 if the sequence is a VMD type,
56 0 if it is not.
57
58 If the sequence is not a VMD data type this macro could lead to
59 a preprocessor error. This is because the macro
60 uses preprocessor concatenation to determine if the sequence
61 is an identifier once it is determined that the sequence does not
62 start with parentheses. If the data being concatenated would
63 lead to an invalid preprocessor token the compiler can issue
64 a preprocessor error.
65
66*/
67
68#define BOOST_VMD_IS_TYPE_D(d,sequence) \
69 BOOST_VMD_DETAIL_IS_TYPE_D(d,sequence) \
70/**/
71
72#endif /* BOOST_PP_VARIADICS */
73#endif /* BOOST_VMD_IS_TYPE_HPP */
74

source code of boost/boost/vmd/is_type.hpp