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_NUMBER_HPP) 8 #define BOOST_VMD_DETAIL_IS_NUMBER_HPP 9 10 #include <boost/preprocessor/control/iif.hpp> 11 #include <boost/vmd/identity.hpp> 12 #include <boost/vmd/detail/equal_type.hpp> 13 #include <boost/vmd/detail/identifier_type.hpp> 14 #include <boost/vmd/detail/is_identifier.hpp> 15 #include <boost/vmd/detail/number_registration.hpp> 16 17 #define BOOST_VMD_DETAIL_IS_NUMBER_TYPE(vseq) \ 18 BOOST_VMD_DETAIL_EQUAL_TYPE \ 19 ( \ 20 BOOST_VMD_TYPE_NUMBER, \ 21 BOOST_VMD_DETAIL_IDENTIFIER_TYPE(vseq) \ 22 ) \ 23 /**/ 24 25 #define BOOST_VMD_DETAIL_IS_NUMBER(vseq) \ 26 BOOST_VMD_IDENTITY_RESULT \ 27 ( \ 28 BOOST_PP_IIF \ 29 ( \ 30 BOOST_VMD_DETAIL_IS_IDENTIFIER_SINGLE(vseq), \ 31 BOOST_VMD_DETAIL_IS_NUMBER_TYPE, \ 32 BOOST_VMD_IDENTITY(0) \ 33 ) \ 34 (vseq) \ 35 ) \ 36 /**/ 37 38 #endif /* BOOST_VMD_DETAIL_IS_NUMBER_HPP */ 39