Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r73806 - in sandbox/variadic_macro_data: boost/variadic_macro_data boost/variadic_macro_data/detail libs/variadic_macro_data/doc
From: eldiener_at_[hidden]
Date: 2011-08-15 20:25:14


Author: eldiener
Date: 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
New Revision: 73806
URL: http://svn.boost.org/trac/boost/changeset/73806

Log:
Simplifying headers
Removed:
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_common.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_native.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_pplib.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_common.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_native.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_pplib.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_common.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_native.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_pplib.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens_native.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens_pplib.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array_common.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array_native.hpp
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array_pplib.hpp
Text files modified:
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array.hpp | 171 +++++++++++++++++++++++++-
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list.hpp | 149 ++++++++++++++++++++++-
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq.hpp | 255 ++++++++++++++++++++++++++++++++++++++-
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens.hpp | 11
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array.hpp | 82 +++++-------
   sandbox/variadic_macro_data/libs/variadic_macro_data/doc/index.idx | 2
   sandbox/variadic_macro_data/libs/variadic_macro_data/doc/jamfile.v2 | 1
   sandbox/variadic_macro_data/libs/variadic_macro_data/doc/vmd_history.qbk | 1
   8 files changed, 594 insertions(+), 78 deletions(-)

Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array.hpp (original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
@@ -3,15 +3,172 @@
 
 #include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
 
-#if BOOST_VMD_VARIADICS
+#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
+
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/facilities/empty.hpp>
+#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
+#include <boost/variadic_macro_data/vmd_is_empty.hpp>
+#include <boost/variadic_macro_data/vmd_tuple.hpp>
+
+#if BOOST_VMD_MSVC
+
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/debug/assert.hpp>
+
+#define VMD_DETAIL_ASSERT_IS_ARRAY_VC_CHECK_RETURN_FAILURE(x) \
+ BOOST_PP_ASSERT \
+ ( \
+ x \
+ ) \
+ BOOST_PP_IIF \
+ ( \
+ x, \
+ BOOST_PP_EMPTY, \
+ VMD_DETAIL_ASSERT_IS_ARRAY_VC_GEN_ERROR_OUTPUT \
+ ) \
+ () \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_ARRAY_VC_GEN_ERROR_OUTPUT() \
+ typedef char BOOST_VMD_IS_ARRAY_ASSERT_ERROR[-1]; \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO(x) 0
+
+#define VMD_DETAIL_ASSERT_IS_ARRAY_VC_IMP(x) \
+ ( \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_PP_EQUAL(2,BOOST_VMD_PP_TUPLE_SIZE(x)), \
+ VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM, \
+ VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO \
+ ) \
+ (x) \
+ ) \
+/**/
+
+/*
+
+ Check if the first element of the tuple is numeric
+
+*/
+
+#define VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM(x) \
+ BOOST_PP_IIF \
+ ( \
+ VMD_DETAIL_ASSERT_IS_ARRAY_NUM(BOOST_VMD_PP_TUPLE_ELEM(0,x)), \
+ VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_NUMERIC_MATCH, \
+ VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO \
+ ) \
+ (x) \
+/**/
 
-#if BOOST_VMD_PPLIB
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_array_pplib.hpp>
 #else
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_array_native.hpp>
-#endif /* BOOST_VMD_PPLIB */
 
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_array_common.hpp>
+#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
+
+/*
+
+ Check if the first element of the tuple is numeric
+
+*/
+
+#define VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM(x) \
+ BOOST_PP_IIF \
+ ( \
+ VMD_DETAIL_ASSERT_IS_ARRAY_NUM(BOOST_VMD_PP_TUPLE_ELEM(0,x)), \
+ VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_NUMERIC_MATCH, \
+ VMD_DETAIL_GEN_ZERO \
+ ) \
+ (x) \
+/**/
+
+#endif /* BOOST_VMD_MSVC */
+
+/*
+
+ Check if the first element of the tuple is equal to the number of tuple elements of the second element
+
+*/
+
+#define VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_NUMERIC_MATCH(x) \
+ BOOST_VMD_ASSERT_IS_TUPLE(BOOST_VMD_PP_TUPLE_ELEM(1,x)) \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_PP_EQUAL(BOOST_VMD_PP_TUPLE_ELEM(0,x),BOOST_VMD_PP_TUPLE_SIZE(BOOST_VMD_PP_TUPLE_ELEM(1,x))), \
+ 1, \
+ 0 \
+ ) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM(x) BOOST_VMD_IS_EMPTY(BOOST_PP_CAT(VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_, x) BOOST_PP_EMPTY())
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_1
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_2
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_3
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_4
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_5
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_6
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_7
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_8
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_9
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_10
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_11
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_12
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_13
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_14
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_15
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_16
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_17
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_18
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_19
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_20
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_21
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_22
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_23
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_24
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_25
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_26
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_27
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_28
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_29
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_30
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_31
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_32
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_33
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_34
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_35
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_36
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_37
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_38
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_39
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_40
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_41
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_42
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_43
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_44
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_45
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_46
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_47
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_48
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_49
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_50
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_51
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_52
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_53
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_54
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_55
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_56
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_57
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_58
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_59
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_60
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_61
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_62
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_63
+#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_64
 
-#endif /* BOOST_VMD_VARIADICS */
+#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
 #endif /* VMD_DETAIL_ASSERT_IS_ARRAY_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_common.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_common.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,106 +0,0 @@
-#if !defined(VMD_DETAIL_ASSERT_IS_ARRAY_COMMON_HPP)
-#define VMD_DETAIL_ASSERT_IS_ARRAY_COMMON_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/variadic_macro_data/vmd_is_empty.hpp>
-#include <boost/preprocessor/facilities/empty.hpp>
-
-#if BOOST_VMD_MSVC
-
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/debug/assert.hpp>
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_VC_CHECK_RETURN_FAILURE(x) \
- BOOST_PP_ASSERT \
- ( \
- x \
- ) \
- BOOST_PP_IIF \
- ( \
- x, \
- BOOST_PP_EMPTY, \
- VMD_DETAIL_ASSERT_IS_ARRAY_VC_GEN_ERROR_OUTPUT \
- ) \
- () \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_VC_GEN_ERROR_OUTPUT() \
- typedef char BOOST_VMD_IS_ARRAY_ASSERT_ERROR[-1]; \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO(x) 0
-
-#endif /* BOOST_VMD_MSVC */
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM(x) BOOST_VMD_IS_EMPTY(BOOST_PP_CAT(VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_, x) BOOST_PP_EMPTY())
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_1
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_2
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_3
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_4
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_5
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_6
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_7
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_8
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_9
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_10
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_11
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_12
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_13
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_14
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_15
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_16
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_17
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_18
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_19
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_20
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_21
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_22
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_23
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_24
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_25
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_26
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_27
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_28
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_29
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_30
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_31
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_32
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_33
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_34
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_35
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_36
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_37
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_38
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_39
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_40
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_41
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_42
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_43
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_44
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_45
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_46
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_47
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_48
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_49
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_50
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_51
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_52
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_53
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_54
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_55
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_56
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_57
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_58
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_59
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_60
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_61
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_62
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_63
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NUM_HELPER_64
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
-#endif /* VMD_DETAIL_ASSERT_ASSERT_IS_ARRAY_COMMON_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_native.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,86 +0,0 @@
-#if !defined(VMD_DETAIL_ASSERT_IS_ARRAY_NATIVE_HPP)
-#define VMD_DETAIL_ASSERT_IS_ARRAY_NATIVE_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
-
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/variadic_macro_data/vmd_tuple.hpp>
-#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
-
-#if !BOOST_VMD_MSVC
-
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
-
-#endif
-
-#if BOOST_VMD_MSVC
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_VC_IMP(x) \
- ( \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL(2,BOOST_VMD_PP_TUPLE_SIZE(x)), \
- VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM, \
- VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO \
- ) \
- (x) \
- ) \
-/**/
-
-/*
-
- Check if the first element of the tuple is numeric
-
-*/
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM(x) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_ARRAY_NUM(BOOST_VMD_PP_TUPLE_ELEM(0,x)), \
- VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_NUMERIC_MATCH, \
- VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO \
- ) \
- (x) \
-/**/
-
-#else
-
-/*
-
- Check if the first element of the tuple is numeric
-
-*/
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM(x) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_ARRAY_NUM(BOOST_VMD_PP_TUPLE_ELEM(0,x)), \
- VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_NUMERIC_MATCH, \
- VMD_DETAIL_GEN_ZERO \
- ) \
- (x) \
-/**/
-
-#endif /* BOOST_VMD_MSVC */
-
-/*
-
- Finally check if the first element of the tuple is equal to the number of tuple elements of the second element
-
-*/
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_NUMERIC_MATCH(x) \
- BOOST_VMD_ASSERT_IS_TUPLE(BOOST_VMD_PP_TUPLE_ELEM(1,x)) \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL(BOOST_VMD_PP_TUPLE_ELEM(0,x),BOOST_VMD_PP_TUPLE_SIZE(BOOST_VMD_PP_TUPLE_ELEM(1,x))), \
- 1, \
- 0 \
- ) \
-/**/
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
-#endif /* VMD_DETAIL_ASSERT_IS_ARRAY_NATIVE_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_pplib.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_pplib.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,87 +0,0 @@
-#if !defined(VMD_DETAIL_ASSERT_IS_ARRAY_PPLIB_HPP)
-#define VMD_DETAIL_ASSERT_IS_ARRAY_PPLIB_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
-
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/tuple/size.hpp>
-#include <boost/preprocessor/tuple/elem.hpp>
-#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
-
-#if !BOOST_VMD_MSVC
-
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
-
-#endif
-
-#if BOOST_VMD_MSVC
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_VC_IMP(x) \
- ( \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL(2,BOOST_PP_TUPLE_SIZE(x)), \
- VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM, \
- VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO \
- ) \
- (x) \
- ) \
-/**/
-
-/*
-
- Check if the first element of the tuple is numeric
-
-*/
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM(x) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_ARRAY_NUM(BOOST_PP_TUPLE_ELEM(0,x)), \
- VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_NUMERIC_MATCH, \
- VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO \
- ) \
- (x) \
-/**/
-
-#else
-
-/*
-
- Check if the first element of the tuple is numeric
-
-*/
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM(x) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_ARRAY_NUM(BOOST_PP_TUPLE_ELEM(0,x)), \
- VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_NUMERIC_MATCH, \
- VMD_DETAIL_GEN_ZERO \
- ) \
- (x) \
-/**/
-
-#endif /* BOOST_VMD_MSVC */
-
-/*
-
- Finally check if the first element of the tuple is equal to the number of tuple elements of the second element
-
-*/
-
-#define VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_NUMERIC_MATCH(x) \
- BOOST_VMD_ASSERT_IS_TUPLE(BOOST_PP_TUPLE_ELEM(1,x)) \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL(BOOST_PP_TUPLE_ELEM(0,x),BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_ELEM(1,x))), \
- 1, \
- 0 \
- ) \
-/**/
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
-#endif /* VMD_DETAIL_ASSERT_IS_ARRAY_PPLIB_HPP */

Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list.hpp (original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
@@ -3,15 +3,150 @@
 
 #include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
 
-#if BOOST_VMD_VARIADICS
+#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
+
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/debug/assert.hpp>
+#include <boost/preprocessor/facilities/empty.hpp>
+#include <boost/preprocessor/logical/bitor.hpp>
+#include <boost/preprocessor/logical/not.hpp>
+#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
+#include <boost/variadic_macro_data/vmd_is_empty.hpp>
+#include <boost/variadic_macro_data/vmd_is_begin_parens.hpp>
+#include <boost/variadic_macro_data/vmd_tuple.hpp>
+
+#if BOOST_VMD_MSVC
+
+#include <boost/preprocessor/facilities/empty.hpp>
+
+#define VMD_DETAIL_ASSERT_IS_LIST_CHECK_RETURN_FAILURE(x) \
+ VMD_DETAIL_ASSERT_IS_LIST_VC_CHECK_RETURN_FAILURE \
+ ( \
+ BOOST_PP_NOT \
+ ( \
+ VMD_DETAIL_ASSERT_IS_LIST_IS_FAILURE(x) \
+ ) \
+ ) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_VC_CHECK_RETURN_FAILURE(x) \
+ BOOST_PP_ASSERT \
+ ( \
+ x \
+ ) \
+ BOOST_PP_IIF \
+ ( \
+ x, \
+ BOOST_PP_EMPTY, \
+ VMD_DETAIL_ASSERT_IS_LIST_VC_GEN_ERROR_OUTPUT \
+ ) \
+ () \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_VC_GEN_ERROR_OUTPUT() \
+ typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1]; \
+/**/
 
-#if BOOST_VMD_PPLIB
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_list_pplib.hpp>
 #else
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_list_native.hpp>
-#endif /* BOOST_VMD_PPLIB */
 
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_list_common.hpp>
+#define VMD_DETAIL_ASSERT_IS_LIST_CHECK_RETURN_FAILURE(x) \
+ BOOST_PP_ASSERT \
+ ( \
+ BOOST_PP_NOT \
+ ( \
+ VMD_DETAIL_ASSERT_IS_LIST_IS_FAILURE(x) \
+ ) \
+ ) \
+/**/
+
+#endif /* BOOST_VMD_MSVC */
+
+#define VMD_DETAIL_ASSERT_IS_LIST_PRED(d,state) \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_VMD_IS_BEGIN_PARENS(state), \
+ VMD_DETAIL_ASSERT_IS_LIST_GEN_ONE, \
+ VMD_DETAIL_ASSERT_IS_LIST_NOT_BOOST_PP_NIL \
+ ) \
+ (state) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_OP(d,state) \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_VMD_IS_BEGIN_PARENS(state), \
+ VMD_DETAIL_ASSERT_IS_LIST_PROCESS_TUPLE, \
+ VMD_DETAIL_ASSERT_IS_LIST_PROCESS_IF_BOOST_PP_NIL \
+ ) \
+ (state) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_PROCESS_IF_BOOST_PP_NIL(x) \
+ BOOST_PP_IIF \
+ ( \
+ VMD_DETAIL_ASSERT_IS_LIST_BOOST_PP_NIL(x), \
+ BOOST_PP_NIL, \
+ BOOST_VMD_IS_LIST_FAILURE \
+ ) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_ASSERT(x) \
+ BOOST_VMD_IS_LIST_FAILURE \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_GEN_ONE(x) \
+ 1 \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_NOT_BOOST_PP_NIL(x) \
+ BOOST_PP_NOT \
+ ( \
+ BOOST_PP_BITOR \
+ ( \
+ VMD_DETAIL_ASSERT_IS_LIST_BOOST_PP_NIL(x), \
+ VMD_DETAIL_ASSERT_IS_LIST_IS_FAILURE(x) \
+ ) \
+ ) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_BOOST_PP_NIL(x) \
+ BOOST_VMD_IS_EMPTY \
+ ( \
+ BOOST_PP_CAT \
+ ( \
+ VMD_DETAIL_ASSERT_IS_LIST_NIL_HELPER_, \
+ x \
+ ) BOOST_PP_EMPTY() \
+ ) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_NIL_HELPER_BOOST_PP_NIL
+
+#define VMD_DETAIL_ASSERT_IS_LIST_IS_FAILURE(x) \
+ BOOST_VMD_IS_EMPTY \
+ ( \
+ BOOST_PP_CAT(VMD_DETAIL_ASSERT_IS_LIST_FHELPER_,x) BOOST_PP_EMPTY() \
+ ) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_FHELPER_BOOST_VMD_IS_LIST_FAILURE
+
+#define VMD_DETAIL_ASSERT_IS_LIST_PROCESS_TUPLE(x) \
+ BOOST_VMD_ASSERT_IS_TUPLE(x) \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_PP_EQUAL(2,BOOST_VMD_PP_TUPLE_SIZE(x)), \
+ VMD_DETAIL_ASSERT_IS_LIST_RETURN_SECOND, \
+ VMD_DETAIL_ASSERT_IS_LIST_ASSERT \
+ ) \
+ (x) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_LIST_RETURN_SECOND(x) \
+ BOOST_VMD_PP_TUPLE_ELEM(1,x) \
+/**/
 
-#endif /* BOOST_VMD_VARIADICS */
+#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
 #endif /* VMD_DETAIL_ASSERT_IS_LIST_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_common.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_common.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,134 +0,0 @@
-#if !defined(VMD_DETAIL_ASSERT_IS_LIST_COMMON_HPP)
-#define VMD_DETAIL_ASSERT_IS_LIST_COMMON_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/debug/assert.hpp>
-#include <boost/preprocessor/facilities/empty.hpp>
-#include <boost/preprocessor/logical/bitor.hpp>
-#include <boost/preprocessor/logical/not.hpp>
-#include <boost/variadic_macro_data/vmd_is_empty.hpp>
-#include <boost/variadic_macro_data/vmd_is_begin_parens.hpp>
-
-#if BOOST_VMD_MSVC
-
-#include <boost/preprocessor/facilities/empty.hpp>
-
-#define VMD_DETAIL_ASSERT_IS_LIST_CHECK_RETURN_FAILURE(x) \
- VMD_DETAIL_ASSERT_IS_LIST_VC_CHECK_RETURN_FAILURE \
- ( \
- BOOST_PP_NOT \
- ( \
- VMD_DETAIL_ASSERT_IS_LIST_IS_FAILURE(x) \
- ) \
- ) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_VC_CHECK_RETURN_FAILURE(x) \
- BOOST_PP_ASSERT \
- ( \
- x \
- ) \
- BOOST_PP_IIF \
- ( \
- x, \
- BOOST_PP_EMPTY, \
- VMD_DETAIL_ASSERT_IS_LIST_VC_GEN_ERROR_OUTPUT \
- ) \
- () \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_VC_GEN_ERROR_OUTPUT() \
- typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1]; \
-/**/
-
-#else
-
-#define VMD_DETAIL_ASSERT_IS_LIST_CHECK_RETURN_FAILURE(x) \
- BOOST_PP_ASSERT \
- ( \
- BOOST_PP_NOT \
- ( \
- VMD_DETAIL_ASSERT_IS_LIST_IS_FAILURE(x) \
- ) \
- ) \
-/**/
-
-#endif /* BOOST_VMD_MSVC */
-
-#define VMD_DETAIL_ASSERT_IS_LIST_PRED(d,state) \
- BOOST_PP_IIF \
- ( \
- BOOST_VMD_IS_BEGIN_PARENS(state), \
- VMD_DETAIL_ASSERT_IS_LIST_GEN_ONE, \
- VMD_DETAIL_ASSERT_IS_LIST_NOT_BOOST_PP_NIL \
- ) \
- (state) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_OP(d,state) \
- BOOST_PP_IIF \
- ( \
- BOOST_VMD_IS_BEGIN_PARENS(state), \
- VMD_DETAIL_ASSERT_IS_LIST_PROCESS_TUPLE, \
- VMD_DETAIL_ASSERT_IS_LIST_PROCESS_IF_BOOST_PP_NIL \
- ) \
- (state) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_PROCESS_IF_BOOST_PP_NIL(x) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_LIST_BOOST_PP_NIL(x), \
- BOOST_PP_NIL, \
- BOOST_VMD_IS_LIST_FAILURE \
- ) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_ASSERT(x) \
- BOOST_VMD_IS_LIST_FAILURE \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_GEN_ONE(x) \
- 1 \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_NOT_BOOST_PP_NIL(x) \
- BOOST_PP_NOT \
- ( \
- BOOST_PP_BITOR \
- ( \
- VMD_DETAIL_ASSERT_IS_LIST_BOOST_PP_NIL(x), \
- VMD_DETAIL_ASSERT_IS_LIST_IS_FAILURE(x) \
- ) \
- ) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_BOOST_PP_NIL(x) \
- BOOST_VMD_IS_EMPTY \
- ( \
- BOOST_PP_CAT \
- ( \
- VMD_DETAIL_ASSERT_IS_LIST_NIL_HELPER_, \
- x \
- ) BOOST_PP_EMPTY() \
- ) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_NIL_HELPER_BOOST_PP_NIL
-
-#define VMD_DETAIL_ASSERT_IS_LIST_IS_FAILURE(x) \
- BOOST_VMD_IS_EMPTY \
- ( \
- BOOST_PP_CAT(VMD_DETAIL_ASSERT_IS_LIST_FHELPER_,x) BOOST_PP_EMPTY() \
- ) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_FHELPER_BOOST_VMD_IS_LIST_FAILURE
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
-#endif /* VMD_DETAIL_ASSERT_IS_LIST_COMMON_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_native.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,29 +0,0 @@
-#if !defined(VMD_DETAIL_ASSERT_IS_LIST_NATIVE_HPP)
-#define VMD_DETAIL_ASSERT_IS_LIST_NATIVE_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
-
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
-#include <boost/variadic_macro_data/vmd_tuple.hpp>
-
-#define VMD_DETAIL_ASSERT_IS_LIST_PROCESS_TUPLE(x) \
- BOOST_VMD_ASSERT_IS_TUPLE(x) \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL(2,BOOST_VMD_PP_TUPLE_SIZE(x)), \
- VMD_DETAIL_ASSERT_IS_LIST_RETURN_SECOND, \
- VMD_DETAIL_ASSERT_IS_LIST_ASSERT \
- ) \
- (x) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_RETURN_SECOND(x) \
- BOOST_VMD_PP_TUPLE_ELEM(1,x) \
-/**/
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
-#endif /* VMD_DETAIL_ASSERT_IS_LIST_NATIVE_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_pplib.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_pplib.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,30 +0,0 @@
-#if !defined(VMD_DETAIL_ASSERT_IS_LIST_PPLIB_HPP)
-#define VMD_DETAIL_ASSERT_IS_LIST_PPLIB_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
-
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/tuple/elem.hpp>
-#include <boost/preprocessor/tuple/size.hpp>
-#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
-
-#define VMD_DETAIL_ASSERT_IS_LIST_PROCESS_TUPLE(x) \
- BOOST_VMD_ASSERT_IS_TUPLE(x) \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL(2,BOOST_PP_TUPLE_SIZE(x)), \
- VMD_DETAIL_ASSERT_IS_LIST_RETURN_SECOND, \
- VMD_DETAIL_ASSERT_IS_LIST_ASSERT \
- ) \
- (x) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_LIST_RETURN_SECOND(x) \
- BOOST_PP_TUPLE_ELEM(1,x) \
-/**/
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
-#endif /* VMD_DETAIL_ASSERT_IS_LIST_PPLIB_HPP */

Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq.hpp (original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
@@ -3,15 +3,256 @@
 
 #include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
 
-#if BOOST_VMD_VARIADICS
+#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
+
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/debug/assert.hpp>
+#include <boost/preprocessor/facilities/empty.hpp>
+#include <boost/preprocessor/facilities/expand.hpp>
+#include <boost/preprocessor/logical/not.hpp>
+#include <boost/variadic_macro_data/vmd_data.hpp>
+#include <boost/variadic_macro_data/vmd_is_empty.hpp>
+#include <boost/variadic_macro_data/vmd_is_begin_parens.hpp>
+
+#if BOOST_VMD_MSVC
+
+#include <boost/preprocessor/facilities/empty.hpp>
+
+#endif
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_PRED(d,state) \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_VMD_IS_BEGIN_PARENS(state), \
+ VMD_DETAIL_ASSERT_IS_SEQ_GEN_ONE, \
+ VMD_DETAIL_ASSERT_IS_SEQ_PRED_CHECK_SUCCESS \
+ ) \
+ (state) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_PRED_CHECK_SUCCESS(state) \
+ BOOST_PP_IIF \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_IS_SUCCESS(state), \
+ VMD_DETAIL_ASSERT_IS_SEQ_GEN_ZERO, \
+ VMD_DETAIL_ASSERT_IS_SEQ_PRED_CHECK_FAILURE \
+ ) \
+ (state) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_PRED_CHECK_FAILURE(state) \
+ BOOST_PP_IIF \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_IS_FAILURE(state), \
+ 0, \
+ 1 \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_OP(d,state) \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_VMD_IS_BEGIN_PARENS(state), \
+ VMD_DETAIL_ASSERT_IS_SEQ_CHECK_FIRST_TUPLE_SIZE, \
+ VMD_DETAIL_ASSERT_IS_SEQ_GEN_RETURN_ASSERT \
+ ) \
+ (state) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_CHECK_FIRST_TUPLE_SIZE(state) \
+ BOOST_PP_IIF \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE(state), \
+ VMD_DETAIL_ASSERT_IS_SEQ_CHECK_AFTER_FIRST_TUPLE, \
+ VMD_DETAIL_ASSERT_IS_SEQ_GEN_FAILURE \
+ ) \
+ (state) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_CHECK_AFTER_FIRST_TUPLE(state) \
+ BOOST_PP_IIF \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_IS_AFTER_FIRST_TUPLE(state), \
+ VMD_DETAIL_ASSERT_IS_SEQ_GET_AFTER_FIRST_TUPLE, \
+ VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE \
+ ) \
+ (state) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE(x) \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_VMD_IS_EMPTY \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_GET_AFTER_FIRST_TUPLE(x) BOOST_PP_EMPTY() \
+ ), \
+ VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_EMPTY, \
+ VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_FULL \
+ ) \
+ (x) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE(...) \
+ BOOST_PP_EQUAL \
+ ( \
+ BOOST_VMD_DATA_SIZE(__VA_ARGS__), \
+ 1 \
+ ) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE_AFTER(...) \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_PP_EQUAL \
+ ( \
+ BOOST_VMD_DATA_SIZE(__VA_ARGS__), \
+ 1 \
+ ), \
+ VMD_DETAIL_ASSERT_IS_SEQ_GEN_ONE_COMMA, \
+ VMD_DETAIL_ASSERT_IS_SEQ_GEN_ZERO_COMMA \
+ ) \
+ () \
+/**/
+
+#if BOOST_VMD_MSVC
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_EMPTY(x) \
+ BOOST_PP_EXPAND(VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE x) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_GET_AFTER_FIRST_TUPLE(x) \
+ BOOST_PP_EXPAND(VMD_DETAIL_ASSERT_IS_SEQ_EMPTY x) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE(x) \
+ VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE_GET \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_EMPTY x \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_IS_AFTER_FIRST_TUPLE(x) \
+ BOOST_VMD_IS_BEGIN_PARENS \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_EMPTY x \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_CHECK_RETURN_FAILURE(x) \
+ VMD_DETAIL_ASSERT_IS_SEQ_VC_CHECK_RETURN_FAILURE \
+ ( \
+ BOOST_PP_NOT \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_IS_FAILURE(x) \
+ ) \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_VC_CHECK_RETURN_FAILURE(x) \
+ BOOST_PP_ASSERT \
+ ( \
+ x \
+ ) \
+ BOOST_PP_IIF \
+ ( \
+ x, \
+ BOOST_PP_EMPTY, \
+ VMD_DETAIL_ASSERT_IS_SEQ_VC_GEN_ERROR_OUTPUT \
+ ) \
+ () \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_VC_GEN_ERROR_OUTPUT() \
+ typedef char BOOST_VMD_ASSERT_IS_SEQ_ERROR[-1]; \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_FULL(x) \
+ BOOST_VMD_DATA_ELEM \
+ ( \
+ 0, \
+ VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE_AFTER x \
+ ) \
+/**/
 
-#if BOOST_VMD_PPLIB
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_pplib.hpp>
 #else
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_native.hpp>
-#endif /* BOOST_VMD_PPLIB */
 
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_common.hpp>
+#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_EMPTY(x) \
+ VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE,x) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_GET_AFTER_FIRST_TUPLE(x) \
+ VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_EMPTY,x) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE(x) \
+ VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE_GET \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_EMPTY,x) \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_IS_AFTER_FIRST_TUPLE(x) \
+ BOOST_VMD_IS_BEGIN_PARENS \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_EMPTY,x) \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_CHECK_RETURN_FAILURE(x) \
+ BOOST_PP_ASSERT \
+ ( \
+ BOOST_PP_NOT \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_IS_FAILURE(x) \
+ ) \
+ ) \
+/**/
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_FULL(x) \
+ BOOST_VMD_DATA_ELEM \
+ ( \
+ 0, \
+ VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE_AFTER,x) \
+ ) \
+/**/
+
+#endif /* BOOST_VMD_MSVC */
+
+#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE_GET(x) \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_VMD_IS_EMPTY \
+ ( \
+ x BOOST_PP_EMPTY() \
+ ), \
+ BOOST_VMD_IS_SEQ_SUCCESS, \
+ x \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_APPLY_I(macro, args) \
+ macro args \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_APPLY(macro, args) \
+ VMD_DETAIL_ASSERT_IS_SEQ_APPLY_I(macro, args) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_RETURN_ASSERT(x) \
+ BOOST_PP_IIF \
+ ( \
+ VMD_DETAIL_ASSERT_IS_SEQ_IS_SUCCESS(x), \
+ BOOST_VMD_IS_SEQ_SUCCESS, \
+ BOOST_VMD_IS_SEQ_FAILURE \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_EMPTY(...) VMD_DETAIL_ASSERT_IS_SEQ_EMPTY1(__VA_ARGS__)
+#define VMD_DETAIL_ASSERT_IS_SEQ_EMPTY1(...)
+#define VMD_DETAIL_ASSERT_IS_SEQ_IS_SUCCESS(x) \
+ BOOST_VMD_IS_EMPTY \
+ ( \
+ BOOST_PP_CAT(VMD_DETAIL_ASSERT_IS_SEQ_SHELPER_,x) BOOST_PP_EMPTY() \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_IS_FAILURE(x) \
+ BOOST_VMD_IS_EMPTY \
+ ( \
+ BOOST_PP_CAT(VMD_DETAIL_ASSERT_IS_SEQ_FHELPER_,x) BOOST_PP_EMPTY() \
+ ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_SHELPER_BOOST_VMD_IS_SEQ_SUCCESS
+#define VMD_DETAIL_ASSERT_IS_SEQ_FHELPER_BOOST_VMD_IS_SEQ_FAILURE
+#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_ONE(x) 1
+#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_ZERO(x) 0
+#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_ONE_COMMA() 1,
+#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_ZERO_COMMA() 0,
+#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_FAILURE(x) BOOST_VMD_IS_SEQ_FAILURE
 
-#endif /* BOOST_VMD_VARIADICS */
+#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
 #endif /* VMD_DETAIL_ASSERT_IS_SEQ_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_common.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_common.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,218 +0,0 @@
-#if !defined(VMD_DETAIL_ASSERT_IS_SEQ_COMMON_HPP)
-#define VMD_DETAIL_ASSERT_IS_SEQ_COMMON_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/debug/assert.hpp>
-#include <boost/preprocessor/facilities/empty.hpp>
-#include <boost/preprocessor/facilities/expand.hpp>
-#include <boost/preprocessor/logical/not.hpp>
-#include <boost/variadic_macro_data/vmd_is_empty.hpp>
-#include <boost/variadic_macro_data/vmd_is_begin_parens.hpp>
-
-#if BOOST_VMD_MSVC
-
-#include <boost/preprocessor/facilities/empty.hpp>
-
-#endif
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_PRED(d,state) \
- BOOST_PP_IIF \
- ( \
- BOOST_VMD_IS_BEGIN_PARENS(state), \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_ONE, \
- VMD_DETAIL_ASSERT_IS_SEQ_PRED_CHECK_SUCCESS \
- ) \
- (state) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_PRED_CHECK_SUCCESS(state) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_IS_SUCCESS(state), \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_ZERO, \
- VMD_DETAIL_ASSERT_IS_SEQ_PRED_CHECK_FAILURE \
- ) \
- (state) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_PRED_CHECK_FAILURE(state) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_IS_FAILURE(state), \
- 0, \
- 1 \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_OP(d,state) \
- BOOST_PP_IIF \
- ( \
- BOOST_VMD_IS_BEGIN_PARENS(state), \
- VMD_DETAIL_ASSERT_IS_SEQ_CHECK_FIRST_TUPLE_SIZE, \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_RETURN_ASSERT \
- ) \
- (state) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_CHECK_FIRST_TUPLE_SIZE(state) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE(state), \
- VMD_DETAIL_ASSERT_IS_SEQ_CHECK_AFTER_FIRST_TUPLE, \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_FAILURE \
- ) \
- (state) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_CHECK_AFTER_FIRST_TUPLE(state) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_IS_AFTER_FIRST_TUPLE(state), \
- VMD_DETAIL_ASSERT_IS_SEQ_GET_AFTER_FIRST_TUPLE, \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE \
- ) \
- (state) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE(x) \
- BOOST_PP_IIF \
- ( \
- BOOST_VMD_IS_EMPTY \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_GET_AFTER_FIRST_TUPLE(x) BOOST_PP_EMPTY() \
- ), \
- VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_EMPTY, \
- VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_FULL \
- ) \
- (x) \
-/**/
-
-#if BOOST_VMD_MSVC
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_EMPTY(x) \
- BOOST_PP_EXPAND(VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE x) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_GET_AFTER_FIRST_TUPLE(x) \
- BOOST_PP_EXPAND(VMD_DETAIL_ASSERT_IS_SEQ_EMPTY x) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE(x) \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE_GET \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_EMPTY x \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_IS_AFTER_FIRST_TUPLE(x) \
- BOOST_VMD_IS_BEGIN_PARENS \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_EMPTY x \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_CHECK_RETURN_FAILURE(x) \
- VMD_DETAIL_ASSERT_IS_SEQ_VC_CHECK_RETURN_FAILURE \
- ( \
- BOOST_PP_NOT \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_IS_FAILURE(x) \
- ) \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_VC_CHECK_RETURN_FAILURE(x) \
- BOOST_PP_ASSERT \
- ( \
- x \
- ) \
- BOOST_PP_IIF \
- ( \
- x, \
- BOOST_PP_EMPTY, \
- VMD_DETAIL_ASSERT_IS_SEQ_VC_GEN_ERROR_OUTPUT \
- ) \
- () \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_VC_GEN_ERROR_OUTPUT() \
- typedef char BOOST_VMD_ASSERT_IS_SEQ_ERROR[-1]; \
-/**/
-
-#else
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_EMPTY(x) \
- VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE,x) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_GET_AFTER_FIRST_TUPLE(x) \
- VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_EMPTY,x) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE(x) \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE_GET \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_EMPTY,x) \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_IS_AFTER_FIRST_TUPLE(x) \
- BOOST_VMD_IS_BEGIN_PARENS \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_EMPTY,x) \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_CHECK_RETURN_FAILURE(x) \
- BOOST_PP_ASSERT \
- ( \
- BOOST_PP_NOT \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_IS_FAILURE(x) \
- ) \
- ) \
-/**/
-
-#endif
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_NOT_TUPLE_GET(x) \
- BOOST_PP_IIF \
- ( \
- BOOST_VMD_IS_EMPTY \
- ( \
- x BOOST_PP_EMPTY() \
- ), \
- BOOST_VMD_IS_SEQ_SUCCESS, \
- x \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_APPLY_I(macro, args) \
- macro args \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_APPLY(macro, args) \
- VMD_DETAIL_ASSERT_IS_SEQ_APPLY_I(macro, args) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_RETURN_ASSERT(x) \
- BOOST_PP_IIF \
- ( \
- VMD_DETAIL_ASSERT_IS_SEQ_IS_SUCCESS(x), \
- BOOST_VMD_IS_SEQ_SUCCESS, \
- BOOST_VMD_IS_SEQ_FAILURE \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_EMPTY(...) VMD_DETAIL_ASSERT_IS_SEQ_EMPTY1(__VA_ARGS__)
-#define VMD_DETAIL_ASSERT_IS_SEQ_EMPTY1(...)
-#define VMD_DETAIL_ASSERT_IS_SEQ_IS_SUCCESS(x) \
- BOOST_VMD_IS_EMPTY \
- ( \
- BOOST_PP_CAT(VMD_DETAIL_ASSERT_IS_SEQ_SHELPER_,x) BOOST_PP_EMPTY() \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_IS_FAILURE(x) \
- BOOST_VMD_IS_EMPTY \
- ( \
- BOOST_PP_CAT(VMD_DETAIL_ASSERT_IS_SEQ_FHELPER_,x) BOOST_PP_EMPTY() \
- ) \
-/**/
-#define VMD_DETAIL_ASSERT_IS_SEQ_SHELPER_BOOST_VMD_IS_SEQ_SUCCESS
-#define VMD_DETAIL_ASSERT_IS_SEQ_FHELPER_BOOST_VMD_IS_SEQ_FAILURE
-#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_ONE(x) 1
-#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_ZERO(x) 0
-#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_ONE_COMMA() 1,
-#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_ZERO_COMMA() 0,
-#define VMD_DETAIL_ASSERT_IS_SEQ_GEN_FAILURE(x) BOOST_VMD_IS_SEQ_FAILURE
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
-#endif /* VMD_DETAIL_ASSERT_IS_SEQ_COMMON_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_native.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,57 +0,0 @@
-#if !defined(VMD_DETAIL_ASSERT_IS_SEQ_NATIVE_HPP)
-#define VMD_DETAIL_ASSERT_IS_SEQ_NATIVE_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
-
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/variadic_macro_data/vmd_data.hpp>
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE(...) \
- BOOST_PP_EQUAL \
- ( \
- BOOST_VMD_DATA_SIZE(__VA_ARGS__), \
- 1 \
- ) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE_AFTER(...) \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL \
- ( \
- BOOST_VMD_DATA_SIZE(__VA_ARGS__), \
- 1 \
- ), \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_ONE_COMMA, \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_ZERO_COMMA \
- ) \
- () \
-/**/
-
-#if BOOST_VMD_MSVC
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_FULL(x) \
- BOOST_VMD_DATA_ELEM \
- ( \
- 0, \
- VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE_AFTER x \
- ) \
-/**/
-
-#else
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_FULL(x) \
- BOOST_VMD_DATA_ELEM \
- ( \
- 0, \
- VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE_AFTER,x) \
- ) \
-/**/
-
-#endif
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
-#endif /* VMD_DETAIL_ASSERT_IS_SEQ_NATIVE_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_pplib.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_pplib.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,58 +0,0 @@
-#if !defined(VMD_DETAIL_ASSERT_IS_SEQ_PPLIB_HPP)
-#define VMD_DETAIL_ASSERT_IS_SEQ_PPLIB_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
-
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/variadic/elem.hpp>
-#include <boost/preprocessor/variadic/size.hpp>
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE(...) \
- BOOST_PP_EQUAL \
- ( \
- BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), \
- 1 \
- ) \
-/**/
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE_AFTER(...) \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL \
- ( \
- BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), \
- 1 \
- ), \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_ONE_COMMA, \
- VMD_DETAIL_ASSERT_IS_SEQ_GEN_ZERO_COMMA \
- ) \
- () \
-/**/
-
-#if BOOST_VMD_MSVC
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_FULL(x) \
- BOOST_PP_VARIADIC_ELEM \
- ( \
- 0, \
- VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE_AFTER x \
- ) \
-/**/
-
-#else
-
-#define VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_FIRST_TUPLE_SIZE_FULL(x) \
- BOOST_PP_VARIADIC_ELEM \
- ( \
- 0, \
- VMD_DETAIL_ASSERT_IS_SEQ_APPLY(VMD_DETAIL_ASSERT_IS_SEQ_ASSERT_SIZE_AFTER,x) \
- ) \
-/**/
-
-#endif /* BOOST_VMD_MSVC */
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA */
-#endif /* VMD_DETAIL_ASSERT_IS_SEQ_PPLIB_HPP */

Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens.hpp (original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
@@ -5,11 +5,12 @@
 
 #if BOOST_VMD_VARIADICS
 
-#if BOOST_VMD_PPLIB
-#include <boost/variadic_macro_data/detail/vmd_detail_remove_parens_pplib.hpp>
-#else
-#include <boost/variadic_macro_data/detail/vmd_detail_remove_parens_native.hpp>
-#endif /* BOOST_VMD_PPLIB */
+#include <boost/preprocessor/facilities/identity.hpp>
+#include <boost/variadic_macro_data/vmd_to_data.hpp>
+
+#define VMD_DETAIL_REMOVE_PARENS(x) \
+ BOOST_PP_IDENTITY(BOOST_VMD_PP_TUPLE_TO_DATA(x)) \
+/**/
 
 #endif /* BOOST_VMD_VARIADICS */
 #endif /* VMD_DETAIL_REMOVE_PARENS_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens_native.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,16 +0,0 @@
-#if !defined(VMD_DETAIL_REMOVE_PARENS_NATIVE_HPP)
-#define VMD_DETAIL_REMOVE_PARENS_NATIVE_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS
-
-#include <boost/preprocessor/facilities/identity.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail_to_data_native.hpp>
-
-#define VMD_DETAIL_REMOVE_PARENS(x) \
- BOOST_PP_IDENTITY(VMD_DETAIL_PP_TUPLE_TO_DATA(x)) \
-/**/
-
-#endif /* BOOST_VMD_VARIADICS */
-#endif /* VMD_DETAIL_REMOVE_PARENS_NATIVE_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens_pplib.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_remove_parens_pplib.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,16 +0,0 @@
-#if !defined(VMD_DETAIL_REMOVE_PARENS_PPLIB_HPP)
-#define VMD_DETAIL_REMOVE_PARENS_PPLIB_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS
-
-#include <boost/preprocessor/facilities/identity.hpp>
-#include <boost/preprocessor/tuple/enum.hpp>
-
-#define VMD_DETAIL_REMOVE_PARENS(x) \
- BOOST_PP_IDENTITY(BOOST_PP_TUPLE_ENUM(x)) \
-/**/
-
-#endif /* BOOST_VMD_VARIADICS */
-#endif /* VMD_DETAIL_REMOVE_PARENS_PPLIB_HPP */

Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array.hpp (original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
@@ -5,63 +5,45 @@
 
 #if BOOST_VMD_VARIADICS
 
-/*
+#if !BOOST_VMD_ASSERT_DATA
 
- The succeeding comments in this file are in doxygen format.
+#define BOOST_VMD_ASSERT_IS_ARRAY(array)
 
-*/
+#else
+
+#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
+#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_array.hpp>
 
-/** \file
-*/
+#if BOOST_VMD_MSVC
 
-/** \def BOOST_VMD_ASSERT_IS_ARRAY(array)
-
- \brief Asserts that the parameter is a pplib array.
-
- The macro checks that the parameter is a pplib array.
- If it is not a pplib array, it forces a compiler error.
-
- The macro works through variadic macro support.
-
- The macro normally checks for a pplib array only in
- debug mode. However an end-user can force the macro
- to check or not check by defining the macro
- BOOST_VMD_ASSERT_DATA to 1 or 0 respectively.
-
- array = a possible pplib array.
-
- returns = Normally the macro returns nothing.
-
- If the parameter is a pplib array, nothing is
- output.
-
- For VC++, because there is no sure way of forcing
- a compiler error from within a macro without producing
- output, if the parameter is not a pplib array the
- macro forces a compiler error by outputting invalid C++.
-
- For all other compilers a compiler error is forced
- without producing output if the parameter is not a
- pplib array.
-
- There is no completely fool-proof way to check if a
- parameter is empty without possible producing a compiler
- error if it is not. Because a macro checking if a parameter
- is a pplib array needs to perform such a check, the best
- that one can do is to create a compiler error if a parameter
- is not a pplib array rather than having a macro which
- returns 1 or 0, depending on whether a parameter is a pplib
- array.
-
-*/
+#define BOOST_VMD_ASSERT_IS_ARRAY(array) \
+ BOOST_VMD_ASSERT_IS_TUPLE(array) \
+ VMD_DETAIL_ASSERT_IS_ARRAY_VC_CHECK_RETURN_FAILURE VMD_DETAIL_ASSERT_IS_ARRAY_VC_IMP(array) \
+/**/
 
-#if BOOST_VMD_PPLIB
-#include <boost/variadic_macro_data/vmd_assert_is_array_pplib.hpp>
 #else
-#include <boost/variadic_macro_data/vmd_assert_is_array_native.hpp>
-#endif /* BOOST_VMD_PPLIB */
 
-#include <boost/variadic_macro_data/vmd_assert_is_array_common.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/debug/assert.hpp>
+#include <boost/variadic_macro_data/vmd_tuple.hpp>
+#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
+
+#define BOOST_VMD_ASSERT_IS_ARRAY(array) \
+ BOOST_VMD_ASSERT_IS_TUPLE(array) \
+ BOOST_PP_ASSERT \
+ ( \
+ BOOST_PP_IIF \
+ ( \
+ BOOST_PP_EQUAL(2,BOOST_VMD_PP_TUPLE_SIZE(array)), \
+ VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM, \
+ VMD_DETAIL_GEN_ZERO \
+ ) \
+ (array) \
+ ) \
+/**/
 
+#endif /* BOOST_VMD_MSVC */
+#endif /* !BOOST_VMD_ASSERT_DATA */
 #endif /* BOOST_VMD_VARIADICS */
 #endif /* VMD_ASSERT_IS_ARRAY_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array_common.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array_common.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,27 +0,0 @@
-#if !defined(VMD_ASSERT_IS_ARRAY_COMMON_HPP)
-#define VMD_ASSERT_IS_ARRAY_COMMON_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS
-
-#if !BOOST_VMD_ASSERT_DATA
-
-#define BOOST_VMD_ASSERT_IS_ARRAY(array)
-
-#else
-
-#if BOOST_VMD_MSVC
-
-#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_array.hpp>
-
-#define BOOST_VMD_ASSERT_IS_ARRAY(array) \
- BOOST_VMD_ASSERT_IS_TUPLE(array) \
- VMD_DETAIL_ASSERT_IS_ARRAY_VC_CHECK_RETURN_FAILURE VMD_DETAIL_ASSERT_IS_ARRAY_VC_IMP(array) \
-/**/
-
-#endif /* BOOST_VMD_MSVC */
-#endif /* !BOOST_VMD_ASSERT_DATA */
-#endif /* BOOST_VMD_VARIADICS */
-#endif /* VMD_ASSERT_IS_ARRAY_COMMON_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array_native.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,31 +0,0 @@
-#if !defined(VMD_ASSERT_IS_ARRAY_NATIVE_HPP)
-#define VMD_ASSERT_IS_ARRAY_NATIVE_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA && !BOOST_VMD_MSVC
-
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/debug/assert.hpp>
-#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
-#include <boost/variadic_macro_data/vmd_tuple.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_array.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
-
-#define BOOST_VMD_ASSERT_IS_ARRAY(array) \
- BOOST_VMD_ASSERT_IS_TUPLE(array) \
- BOOST_PP_ASSERT \
- ( \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL(2,BOOST_VMD_PP_TUPLE_SIZE(array)), \
- VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM, \
- VMD_DETAIL_GEN_ZERO \
- ) \
- (array) \
- ) \
-/**/
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA && !BOOST_VMD_MSVC */
-#endif /* VMD_ASSERT_IS_ARRAY_NATIVE_HPP */

Deleted: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array_pplib.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_array_pplib.hpp 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
+++ (empty file)
@@ -1,31 +0,0 @@
-#if !defined(VMD_ASSERT_IS_ARRAY_PPLIB_HPP)
-#define VMD_ASSERT_IS_ARRAY_PPLIB_HPP
-
-#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
-
-#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA && !BOOST_VMD_MSVC
-
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/debug/assert.hpp>
-#include <boost/preprocessor/tuple/size.hpp>
-#include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_array.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
-
-#define BOOST_VMD_ASSERT_IS_ARRAY(array) \
- BOOST_VMD_ASSERT_IS_TUPLE(array) \
- BOOST_PP_ASSERT \
- ( \
- BOOST_PP_IIF \
- ( \
- BOOST_PP_EQUAL(2,BOOST_PP_TUPLE_SIZE(array)), \
- VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM, \
- VMD_DETAIL_GEN_ZERO \
- ) \
- (array) \
- ) \
-/**/
-
-#endif /* BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA && !BOOST_VMD_MSVC */
-#endif /* VMD_ASSERT_IS_ARRAY_PPLIB_HPP */

Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/index.idx
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/index.idx (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/index.idx 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
@@ -4,7 +4,7 @@
 !scan boost/variadic_macro_data/vmd_is_empty.hpp
 !scan boost/variadic_macro_data/vmd_is_begin_parens.hpp
 !scan boost/variadic_macro_data/vmd_remove_parens.hpp
-!scan boost/variadic_macro_data/vmd_assert_is_array_native.hpp
+!scan boost/variadic_macro_data/vmd_assert_is_array.hpp
 !scan boost/variadic_macro_data/vmd_assert_is_list.hpp
 !scan boost/variadic_macro_data/vmd_assert_is_seq.hpp
 !scan boost/variadic_macro_data/vmd_assert_is_tuple.hpp

Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/jamfile.v2
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/jamfile.v2 (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/jamfile.v2 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
@@ -45,7 +45,6 @@
     $(here)/../../../boost/variadic_macro_data/vmd_is_begin_parens.hpp
     $(here)/../../../boost/variadic_macro_data/vmd_remove_parens.hpp
     $(here)/../../../boost/variadic_macro_data/vmd_assert_is_array.hpp
- $(here)/../../../boost/variadic_macro_data/vmd_assert_is_array_common.hpp
     $(here)/../../../boost/variadic_macro_data/vmd_assert_is_list.hpp
     $(here)/../../../boost/variadic_macro_data/vmd_assert_is_seq.hpp
     $(here)/../../../boost/variadic_macro_data/vmd_assert_is_tuple.hpp

Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/vmd_history.qbk
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/vmd_history.qbk (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/vmd_history.qbk 2011-08-15 20:25:12 EDT (Mon, 15 Aug 2011)
@@ -7,6 +7,7 @@
 * Added a macro for testing for the emptiness of a parameter.
 * Added support for individual header files.
 * Added support for 'native' and 'pplib' modes.
+* Added control macros for controlling the variadic macro availability, mode, and data verification.
 
 [heading Version 1.4]
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk