123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
- # define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
- # include <boost/preprocessor/seq/for_each_i.hpp>
- # include <boost/preprocessor/seq/enum.hpp>
- # include <boost/preprocessor/comma_if.hpp>
- # include <boost/preprocessor/cat.hpp>
- #endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
- #if BOOST_WORKAROUND(__GNUC__, <= 3)
- # define BOOST_concept(name, params) \
- template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
- struct name; \
- \
- template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
- struct BOOST_PP_CAT(name,Concept) \
- : name< BOOST_PP_SEQ_ENUM(params) > \
- { \
- \
- BOOST_PP_CAT(name,Concept)(); \
- }; \
- \
- template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
- struct name
- #else
- # define BOOST_concept(name, params) \
- template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
- struct name; \
- \
- template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
- struct BOOST_PP_CAT(name,Concept) \
- : name< BOOST_PP_SEQ_ENUM(params) > \
- { \
- }; \
- \
- template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
- struct name
- #endif
-
- # define BOOST_CONCEPT_typename(r, ignored, index, t) \
- BOOST_PP_COMMA_IF(index) typename t
|