mirror of
https://github.com/boostorg/mpl.git
synced 2025-08-05 15:54:39 +02:00
post-merge bug fixes
[SVN r24893]
This commit is contained in:
@@ -62,11 +62,15 @@
|
|||||||
/**/
|
/**/
|
||||||
|
|
||||||
namespace { namespace test {
|
namespace { namespace test {
|
||||||
|
|
||||||
BOOST_PP_REPEAT(
|
BOOST_PP_REPEAT(
|
||||||
BOOST_MPL_LIMIT_METAFUNCTION_ARITY
|
BOOST_MPL_LIMIT_METAFUNCTION_ARITY
|
||||||
, APPLY_FUNC_DEF
|
, APPLY_FUNC_DEF
|
||||||
, unused
|
, unused
|
||||||
)
|
)
|
||||||
|
|
||||||
|
struct g0 { struct apply { typedef char type; }; };
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
#define APPLY_0_TEST(i, apply_) \
|
#define APPLY_0_TEST(i, apply_) \
|
||||||
@@ -107,4 +111,11 @@ MPL_TEST_CASE()
|
|||||||
, APPLY_TEST
|
, APPLY_TEST
|
||||||
, unused
|
, unused
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY)
|
||||||
|
{
|
||||||
|
typedef apply_wrap0<test::g0>::type t;
|
||||||
|
MPL_ASSERT(( boost::is_same<t, char> ));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -21,6 +21,7 @@ struct a1 {};
|
|||||||
struct a2 { void xxx(); };
|
struct a2 { void xxx(); };
|
||||||
struct a3 { int xxx; };
|
struct a3 { int xxx; };
|
||||||
struct a4 { static int xxx(); };
|
struct a4 { static int xxx(); };
|
||||||
|
struct a5 { template< typename T > struct xxx {}; };
|
||||||
|
|
||||||
struct b1 { typedef int xxx; };
|
struct b1 { typedef int xxx; };
|
||||||
struct b2 { struct xxx; };
|
struct b2 { struct xxx; };
|
||||||
@@ -50,6 +51,7 @@ MPL_TEST_CASE()
|
|||||||
MPL_ASSERT_NOT(( has_xxx<a2> ));
|
MPL_ASSERT_NOT(( has_xxx<a2> ));
|
||||||
MPL_ASSERT_NOT(( has_xxx<a3> ));
|
MPL_ASSERT_NOT(( has_xxx<a3> ));
|
||||||
MPL_ASSERT_NOT(( has_xxx<a4> ));
|
MPL_ASSERT_NOT(( has_xxx<a4> ));
|
||||||
|
MPL_ASSERT_NOT(( has_xxx<a5> ));
|
||||||
MPL_ASSERT_NOT(( has_xxx< enum_ > ));
|
MPL_ASSERT_NOT(( has_xxx< enum_ > ));
|
||||||
#endif
|
#endif
|
||||||
MPL_ASSERT_NOT(( has_xxx<a1> ));
|
MPL_ASSERT_NOT(( has_xxx<a1> ));
|
||||||
@@ -58,13 +60,13 @@ MPL_TEST_CASE()
|
|||||||
MPL_ASSERT_NOT(( has_xxx< abstract > ));
|
MPL_ASSERT_NOT(( has_xxx< abstract > ));
|
||||||
MPL_ASSERT_NOT(( has_xxx< noncopyable > ));
|
MPL_ASSERT_NOT(( has_xxx< noncopyable > ));
|
||||||
|
|
||||||
MPL_ASSERT(( has_xxx<b1,true> ));
|
MPL_ASSERT(( has_xxx<b1,true_> ));
|
||||||
MPL_ASSERT(( has_xxx<b2,true> ));
|
MPL_ASSERT(( has_xxx<b2,true_> ));
|
||||||
MPL_ASSERT(( has_xxx<b3,true> ));
|
MPL_ASSERT(( has_xxx<b3,true_> ));
|
||||||
MPL_ASSERT(( has_xxx<b4,true> ));
|
MPL_ASSERT(( has_xxx<b4,true_> ));
|
||||||
MPL_ASSERT(( has_xxx<b5,true> ));
|
MPL_ASSERT(( has_xxx<b5,true_> ));
|
||||||
MPL_ASSERT(( has_xxx<b6,true> ));
|
MPL_ASSERT(( has_xxx<b6,true_> ));
|
||||||
MPL_ASSERT(( has_xxx<b7,true> ));
|
MPL_ASSERT(( has_xxx<b7,true_> ));
|
||||||
|
|
||||||
#if !defined(HAS_XXX_ASSERT)
|
#if !defined(HAS_XXX_ASSERT)
|
||||||
# define HAS_XXX_ASSERT(x) MPL_ASSERT(x)
|
# define HAS_XXX_ASSERT(x) MPL_ASSERT(x)
|
||||||
|
Reference in New Issue
Block a user