Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:53:36

0001 
0002 //  (C) Copyright Edward Diener 2011-2015
0003 //  Use, modification and distribution are subject to the Boost Software License,
0004 //  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0005 //  http://www.boost.org/LICENSE_1_0.txt).
0006 
0007 #if !defined(BOOST_VMD_DETAIL_IS_TYPE_HPP)
0008 #define BOOST_VMD_DETAIL_IS_TYPE_HPP
0009 
0010 #include <boost/preprocessor/control/iif.hpp>
0011 #include <boost/vmd/identity.hpp>
0012 #include <boost/vmd/detail/identifier_type.hpp>
0013 #include <boost/vmd/detail/is_type_type.hpp>
0014 #include <boost/vmd/detail/is_identifier.hpp>
0015 #include <boost/vmd/detail/type_registration.hpp>
0016 
0017 #define BOOST_VMD_DETAIL_IS_TYPE_IMP_TYPE(vseq) \
0018     BOOST_VMD_DETAIL_IS_TYPE_TYPE \
0019         ( \
0020         BOOST_VMD_DETAIL_IDENTIFIER_TYPE(vseq) \
0021         ) \
0022 /**/
0023 
0024 #define BOOST_VMD_DETAIL_IS_TYPE_IMP_TYPE_D(d,vseq) \
0025     BOOST_VMD_DETAIL_IS_TYPE_TYPE \
0026         ( \
0027         BOOST_VMD_DETAIL_IDENTIFIER_TYPE_D(d,vseq) \
0028         ) \
0029 /**/
0030 
0031 #define BOOST_VMD_DETAIL_IS_TYPE(vseq) \
0032     BOOST_VMD_IDENTITY_RESULT \
0033         ( \
0034         BOOST_PP_IIF \
0035             ( \
0036             BOOST_VMD_DETAIL_IS_IDENTIFIER_SINGLE(vseq), \
0037             BOOST_VMD_DETAIL_IS_TYPE_IMP_TYPE, \
0038             BOOST_VMD_IDENTITY(0) \
0039             ) \
0040         (vseq) \
0041         ) \
0042 /**/
0043 
0044 #define BOOST_VMD_DETAIL_IS_TYPE_D(d,vseq) \
0045     BOOST_VMD_IDENTITY_RESULT \
0046         ( \
0047         BOOST_PP_IIF \
0048             ( \
0049             BOOST_VMD_DETAIL_IS_IDENTIFIER_SINGLE_D(d,vseq), \
0050             BOOST_VMD_DETAIL_IS_TYPE_IMP_TYPE_D, \
0051             BOOST_VMD_IDENTITY(0) \
0052             ) \
0053         (d,vseq) \
0054         ) \
0055 /**/
0056 
0057 #endif /* BOOST_VMD_DETAIL_IS_TYPE_HPP */