forked from boostorg/concept_check
Merge branch 'develop'
Apply some fixes from develop.
This commit is contained in:
3
include/boost/concept/assert.hpp
Executable file → Normal file
3
include/boost/concept/assert.hpp
Executable file → Normal file
@@ -18,8 +18,7 @@
|
|||||||
# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT) \
|
# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT) \
|
||||||
&& !defined(BOOST_NO_SFINAE) \
|
&& !defined(BOOST_NO_SFINAE) \
|
||||||
\
|
\
|
||||||
&& !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) \
|
&& !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4))
|
||||||
&& !(BOOST_WORKAROUND(__GNUC__, == 2))
|
|
||||||
|
|
||||||
// Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to
|
// Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to
|
||||||
// check for the presence of particularmember functions.
|
// check for the presence of particularmember functions.
|
||||||
|
17
include/boost/concept/detail/concept_def.hpp
Executable file → Normal file
17
include/boost/concept/detail/concept_def.hpp
Executable file → Normal file
@@ -15,22 +15,6 @@
|
|||||||
//
|
//
|
||||||
// Also defines an equivalent SomeNameConcept for backward compatibility.
|
// Also defines an equivalent SomeNameConcept for backward compatibility.
|
||||||
// Maybe in the next release we can kill off the "Concept" suffix for good.
|
// Maybe in the next release we can kill off the "Concept" suffix for good.
|
||||||
#if BOOST_WORKAROUND(__GNUC__, <= 3)
|
|
||||||
# define BOOST_concept(name, params) \
|
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
|
||||||
struct name; /* forward declaration */ \
|
|
||||||
\
|
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
|
||||||
struct BOOST_PP_CAT(name,Concept) \
|
|
||||||
: name< BOOST_PP_SEQ_ENUM(params) > \
|
|
||||||
{ \
|
|
||||||
/* at least 2.96 and 3.4.3 both need this */ \
|
|
||||||
BOOST_PP_CAT(name,Concept)(); \
|
|
||||||
}; \
|
|
||||||
\
|
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
|
||||||
struct name
|
|
||||||
#else
|
|
||||||
# define BOOST_concept(name, params) \
|
# define BOOST_concept(name, params) \
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
||||||
struct name; /* forward declaration */ \
|
struct name; /* forward declaration */ \
|
||||||
@@ -43,7 +27,6 @@
|
|||||||
\
|
\
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
||||||
struct name
|
struct name
|
||||||
#endif
|
|
||||||
|
|
||||||
// Helper for BOOST_concept, above.
|
// Helper for BOOST_concept, above.
|
||||||
# define BOOST_CONCEPT_typename(r, ignored, index, t) \
|
# define BOOST_CONCEPT_typename(r, ignored, index, t) \
|
||||||
|
@@ -15,9 +15,6 @@ namespace boost {
|
|||||||
template <class Model, class More>
|
template <class Model, class More>
|
||||||
struct requires_ : More
|
struct requires_ : More
|
||||||
{
|
{
|
||||||
# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
|
|
||||||
typedef typename More::type type;
|
|
||||||
# endif
|
|
||||||
BOOST_CONCEPT_ASSERT((Model));
|
BOOST_CONCEPT_ASSERT((Model));
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -34,9 +31,6 @@ struct _requires_
|
|||||||
template <int check, class Result>
|
template <int check, class Result>
|
||||||
struct Requires_ : ::boost::parameter::aux::unaryfunptr_arg_type<Result>
|
struct Requires_ : ::boost::parameter::aux::unaryfunptr_arg_type<Result>
|
||||||
{
|
{
|
||||||
# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
|
|
||||||
typedef typename ::boost::parameter::aux::unaryfunptr_arg_type<Result>::type type;
|
|
||||||
# endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# if BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1010))
|
# if BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1010))
|
||||||
@@ -45,7 +39,7 @@ struct Requires_ : ::boost::parameter::aux::unaryfunptr_arg_type<Result>
|
|||||||
# define BOOST_CONCEPT_REQUIRES_(r,data,t) + (::boost::_requires_<void(*)t>::value)
|
# define BOOST_CONCEPT_REQUIRES_(r,data,t) + (::boost::_requires_<void(*)t>::value)
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#if defined(NDEBUG) || BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
#if defined(NDEBUG)
|
||||||
|
|
||||||
# define BOOST_CONCEPT_REQUIRES(models, result) \
|
# define BOOST_CONCEPT_REQUIRES(models, result) \
|
||||||
typename ::boost::parameter::aux::unaryfunptr_arg_type<void(*)result>::type
|
typename ::boost::parameter::aux::unaryfunptr_arg_type<void(*)result>::type
|
||||||
|
@@ -10,12 +10,6 @@
|
|||||||
|
|
||||||
namespace boost { namespace concepts {
|
namespace boost { namespace concepts {
|
||||||
|
|
||||||
# if BOOST_WORKAROUND(__GNUC__, == 2)
|
|
||||||
|
|
||||||
# define BOOST_CONCEPT_USAGE(model) ~model()
|
|
||||||
|
|
||||||
# else
|
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct usage_requirements
|
struct usage_requirements
|
||||||
{
|
{
|
||||||
@@ -37,8 +31,6 @@ struct usage_requirements
|
|||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# endif
|
|
||||||
|
|
||||||
}} // namespace boost::concepts
|
}} // namespace boost::concepts
|
||||||
|
|
||||||
#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP
|
#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP
|
||||||
|
Reference in New Issue
Block a user