$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r73605 - in sandbox/variadic_macro_data: boost/variadic_macro_data boost/variadic_macro_data/detail libs/variadic_macro_data/test
From: eldiener_at_[hidden]
Date: 2011-08-07 20:50:39
Author: eldiener
Date: 2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
New Revision: 73605
URL: http://svn.boost.org/trac/boost/changeset/73605
Log:
Added assert_is_seq and tests.
Added:
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq.hpp   (contents, props changed)
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_common.hpp   (contents, props changed)
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_native.hpp   (contents, props changed)
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_pplib.hpp   (contents, props changed)
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_native.hpp   (contents, props changed)
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_tuple_begin.hpp   (contents, props changed)
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_tuple_begin_common.hpp   (contents, props changed)
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_seq.hpp   (contents, props changed)
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_seq_common.hpp   (contents, props changed)
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq.cpp   (contents, props changed)
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail.cpp   (contents, props changed)
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail2.cpp   (contents, props changed)
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail3.cpp   (contents, props changed)
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail4.cpp   (contents, props changed)
Text files modified: 
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_common.hpp |     2 +                                       
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_native.hpp |    27 +++++++++++++++++-                      
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_pplib.hpp  |    27 +++++++++++++++++-                      
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_common.hpp  |     2                                         
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_tuple_common.hpp |     2 +                                       
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_common.hpp                 |     3 --                                      
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_data_native.hpp            |    33 +++++++++++++++++++++++                 
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty.hpp               |     2 +                                       
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_common.hpp        |     4 ++                                      
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_pplib.hpp         |     9 +-----                                  
   sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_tuple_native.hpp           |    22 +++++++++++++++                         
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd.hpp                                      |     1                                         
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_Is_empty_pplib.hpp                       |    14 ++++-----                               
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_tuple_common.hpp               |     4 +-                                      
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_empty_native.hpp                      |    18 +++++-------                            
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_tuple_begin_native.hpp                |    11 +++----                                 
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_tuple_begin_pplib.hpp                 |    11 +++----                                 
   sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_tuple_native.hpp                         |    56 ++++++++++++++++++++++++++++++++++++++++
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/Jamfile.v2                               |    30 +++++++++++++++++++++                   
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail.cpp            |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail2.cpp           |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail3.cpp           |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail4.cpp           |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail.cpp             |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail2.cpp            |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail3.cpp            |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail4.cpp            |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail.cpp            |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail2.cpp           |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail3.cpp           |     2                                         
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail4.cpp           |     2                                         
   31 files changed, 242 insertions(+), 60 deletions(-)
Modified: 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	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_common.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -34,6 +34,8 @@
     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))
Modified: 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	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_native.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,8 +11,13 @@
 #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) \
@@ -21,13 +26,29 @@
       ( \
       BOOST_PP_EQUAL(2,BOOST_VMD_PP_TUPLE_SIZE(x)), \
       VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM, \
-      VMD_DETAIL_GEN_ZERO \
+      VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO \
       ) \
     (x) \
     ) \
 /**/
 
-#endif /* BOOST_VMD_MSVC */
+/*
+
+  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
 
 /*
 
@@ -45,6 +66,8 @@
     (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
Modified: 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	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_array_pplib.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -12,8 +12,13 @@
 #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) \
@@ -22,13 +27,29 @@
       ( \
       BOOST_PP_EQUAL(2,BOOST_PP_TUPLE_SIZE(x)), \
       VMD_DETAIL_ASSERT_IS_ARRAY_CHECK_ARRAY_FORM, \
-      VMD_DETAIL_GEN_ZERO \
+      VMD_DETAIL_ASSERT_IS_ARRAY_GEN_ZERO \
       ) \
     (x) \
     ) \
 /**/
 
-#endif /* BOOST_VMD_MSVC */
+/*
+
+  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
 
 /*
 
@@ -46,6 +67,8 @@
     (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
Modified: 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	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_list_common.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -133,4 +133,4 @@
 
 #endif /* BOOST_VMD_ASSERT_DATA */
 #endif /* BOOST_VMD_VARIADICS */
-#endif /* VMD_DETAIL_ASSERT_ASSERT_IS_LIST_COMMON_HPP */
+#endif /* VMD_DETAIL_ASSERT_IS_LIST_COMMON_HPP */
Added: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,17 @@
+#if !defined(VMD_DETAIL_ASSERT_IS_SEQ_HPP)
+#define VMD_DETAIL_ASSERT_IS_SEQ_HPP
+
+#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
+
+#if BOOST_VMD_VARIADICS
+
+#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>
+
+#endif /* BOOST_VMD_VARIADICS */
+#endif /* VMD_DETAIL_ASSERT_IS_SEQ_HPP */
Added: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_common.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_common.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,220 @@
+#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
+
+#if 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/expand.hpp>
+#include <boost/preprocessor/logical/not.hpp>
+#include <boost/variadic_macro_data/vmd_is_empty.hpp>
+#include <boost/variadic_macro_data/vmd_is_tuple_begin.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_TUPLE_BEGIN(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_TUPLE_BEGIN(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) \
+        ), \
+      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_TUPLE_BEGIN \
+      ( \
+      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_TUPLE_BEGIN \
+      ( \
+      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_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) \
+      ) \
+/**/
+#define VMD_DETAIL_ASSERT_IS_SEQ_IS_FAILURE(x) \
+    BOOST_VMD_IS_EMPTY \
+      ( \
+      BOOST_PP_CAT(VMD_DETAIL_ASSERT_IS_SEQ_FHELPER_,x) \
+      ) \
+/**/
+#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_ASSERT_DATA */
+#endif /* BOOST_VMD_VARIADICS */
+#endif /* VMD_DETAIL_ASSERT_IS_SEQ_COMMON_HPP */
Added: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_native.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_native.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,60 @@
+#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
+
+#if 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_ASSERT_DATA */
+#endif // BOOST_VMD_VARIADICS
+#endif // VMD_DETAIL_ASSERT_IS_SEQ_NATIVE_HPP
Added: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_pplib.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_seq_pplib.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,61 @@
+#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
+
+#if 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_ASSERT_DATA */
+#endif // BOOST_VMD_VARIADICS
+#endif // VMD_DETAIL_ASSERT_IS_SEQ_PPLIB_HPP
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_tuple_common.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_tuple_common.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_assert_is_tuple_common.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -33,6 +33,8 @@
    typedef char BOOST_VMD_ASSERT_IS_TUPLE_ERROR[-1]; \
 /**/
 
+#define VMD_DETAIL_ASSERT_IS_TUPLE_GEN_ZERO(x) 0
+
 #endif /* BOOST_VMD_MSVC */
 
 #define VMD_DETAIL_ASSERT_IS_TUPLE_IS_NOT_AFTER(x) \
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_common.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_common.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_common.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -5,9 +5,6 @@
 
 #if BOOST_VMD_VARIADICS
 
-#define VMD_DETAIL_COMMON_EXPAND(...) \
-  1,1 \
-/**/
 #define VMD_DETAIL_GEN_ZERO(x) 0
 
 #endif /* BOOST_VMD_VARIADICS */
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_data_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_data_native.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_data_native.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -5,8 +5,17 @@
 
 #if BOOST_VMD_VARIADICS
 
+#if BOOST_VMD_MSVC
+
+#include <boost/preprocessor/tuple/to_list.hpp>
+#include <boost/preprocessor/tuple/to_seq.hpp>
+
+#else
+
 #include <boost/variadic_macro_data/detail/vmd_detail_native.hpp>
 
+#endif
+
 #if BOOST_VMD_MSVC
 #include <boost/preprocessor/facilities/empty.hpp>
 #if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
@@ -138,12 +147,36 @@
 #define VMD_DETAIL_DATA_TO_PP_ARRAY(...) \
   ( VMD_DETAIL_DATA_SIZE(__VA_ARGS__) , VMD_DETAIL_DATA_TO_PP_TUPLE(__VA_ARGS__)) \
 /**/
+
+#if BOOST_VMD_MSVC
+
+#define VMD_DETAIL_DATA_PP_TUPLE_TO_LIST(size,tuple) \
+  BOOST_PP_TUPLE_TO_LIST(size,tuple) \
+/**/
+
+#define VMD_DETAIL_DATA_PP_TUPLE_TO_SEQ(size,tuple) \
+  BOOST_PP_TUPLE_TO_SEQ(size,tuple) \
+/**/
+
+#define VMD_DETAIL_DATA_TO_PP_LIST(...) \
+  VMD_DETAIL_DATA_PP_TUPLE_TO_LIST(VMD_DETAIL_DATA_SIZE(__VA_ARGS__),VMD_DETAIL_DATA_TO_PP_TUPLE(__VA_ARGS__)) \
+/**/
+
+#define VMD_DETAIL_DATA_TO_PP_SEQ(...) \
+  VMD_DETAIL_DATA_PP_TUPLE_TO_SEQ(VMD_DETAIL_DATA_SIZE(__VA_ARGS__),VMD_DETAIL_DATA_TO_PP_TUPLE(__VA_ARGS__)) \
+/**/
+
+#else
+
 #define VMD_DETAIL_DATA_TO_PP_LIST(...) \
   VMD_DETAIL_PP_TUPLE_TO_LIST(VMD_DETAIL_DATA_SIZE(__VA_ARGS__),VMD_DETAIL_DATA_TO_PP_TUPLE(__VA_ARGS__)) \
 /**/
+
 #define VMD_DETAIL_DATA_TO_PP_SEQ(...) \
   VMD_DETAIL_PP_TUPLE_TO_SEQ(VMD_DETAIL_DATA_SIZE(__VA_ARGS__),VMD_DETAIL_DATA_TO_PP_TUPLE(__VA_ARGS__)) \
 /**/
 
+#endif
+
 #endif // BOOST_VMD_VARIADICS
 #endif // VMD_DETAIL_DATA_NATIVE_HPP
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -7,6 +7,8 @@
 
 #if BOOST_VMD_PPLIB
 #include <boost/variadic_macro_data/detail/vmd_detail_is_empty_pplib.hpp>
+#else
+#include <boost/variadic_macro_data/detail/vmd_detail_is_empty_native.hpp>
 #endif /* BOOST_VMD_PPLIB */
 
 #include <boost/variadic_macro_data/detail/vmd_detail_is_empty_common.hpp>
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_common.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_common.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_common.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -7,9 +7,13 @@
 
 #if BOOST_VMD_MSVC
 
+# pragma warning(once:4002)
+
 #define VMD_DETAIL_IS_EMPTY_PRIMITIVE_CAT(a, b) a ## b
 #define VMD_DETAIL_IS_EMPTY_IIF_0(t, b) b
 #define VMD_DETAIL_IS_EMPTY_IIF_1(t, b) t
+#define VMD_DETAIL_IS_EMPTY_GEN_ZERO(x) 0
+#define VMD_DETAIL_IS_EMPTY_COMMON_EXPAND(...) 1,1
 
 #else
 
Added: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_native.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_native.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,26 @@
+#if !defined(VMD_DETAIL_IS_EMPTY_NATIVE_HPP)
+#define VMD_DETAIL_IS_EMPTY_NATIVE_HPP
+
+#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
+
+#if BOOST_VMD_VARIADICS
+
+#if BOOST_VMD_MSVC
+
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/variadic_macro_data/vmd_data.hpp>
+
+#define VMD_DETAIL_IS_EMPTY_VC_IS_TUPLE_BEGIN(param) \
+    BOOST_PP_DEC \
+      ( \
+      BOOST_VMD_DATA_SIZE \
+        ( \
+        VMD_DETAIL_IS_EMPTY_COMMON_EXPAND param \
+        ) \
+      ) \
+/**/
+
+#endif /* BOOST_VMD_MSVC */
+
+#endif /* BOOST_VMD_VARIADICS */
+#endif /* VMD_DETAIL_IS_EMPTY_NATIVE_HPP */
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_pplib.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_pplib.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_empty_pplib.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -9,18 +9,13 @@
 
 #include <boost/preprocessor/arithmetic/dec.hpp>
 #include <boost/preprocessor/variadic/size.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
-
-#define VMD_DETAIL_IS_EMPTY_VSIZE(...) VMD_DETAIL_IS_EMPTY_VSIZE2(__VA_ARGS__)
-#define VMD_DETAIL_IS_EMPTY_VSIZE2(...) VMD_DETAIL_IS_EMPTY_VSIZE3(__VA_ARGS__)
-#define VMD_DETAIL_IS_EMPTY_VSIZE3(...) BOOST_PP_VARIADIC_SIZE(__VA_ARGS__)
 
 #define VMD_DETAIL_IS_EMPTY_TUPLE_BEGIN(param) \
     BOOST_PP_DEC \
       ( \
-      VMD_DETAIL_IS_EMPTY_VSIZE \
+      BOOST_PP_VARIADIC_SIZE \
         ( \
-        VMD_DETAIL_COMMON_EXPAND param \
+        VMD_DETAIL_IS_EMPTY_COMMON_EXPAND param \
         ) \
       ) \
 /**/
Added: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_tuple_begin.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_tuple_begin.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,11 @@
+#if !defined(VMD_DETAIL_IS_TUPLE_BEGIN_HPP)
+#define VMD_DETAIL_IS_TUPLE_BEGIN_HPP
+
+#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
+
+#if BOOST_VMD_VARIADICS
+
+#include <boost/variadic_macro_data/detail/vmd_detail_is_tuple_begin_common.hpp>
+
+#endif /* BOOST_VMD_VARIADICS */
+#endif /* VMD_DETAIL_IS_TUPLE_BEGIN_HPP */
Added: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_tuple_begin_common.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_is_tuple_begin_common.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,15 @@
+#if !defined(VMD_DETAIL_IS_TUPLE_BEGIN_COMMON_HPP)
+#define VMD_DETAIL_IS_TUPLE_BEGIN_COMMON_HPP
+
+#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
+
+#if BOOST_VMD_VARIADICS
+
+#if BOOST_VMD_MSVC
+
+#define VMD_DETAIL_IS_TUPLE_BEGIN_COMMON_EXPAND(...) 1,1
+
+#endif /* BOOST_VMD_MSVC */
+
+#endif /* BOOST_VMD_VARIADICS */
+#endif /* VMD_DETAIL_IS_TUPLE_BEGIN_COMMON_HPP */
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_tuple_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_tuple_native.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/detail/vmd_detail_tuple_native.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -9,8 +9,18 @@
 #include <boost/preprocessor/tuple/reverse.hpp>
 #include <boost/preprocessor/tuple/rem.hpp>
 #include <boost/variadic_macro_data/detail/vmd_detail_data_native.hpp>
+
+#if BOOST_VMD_MSVC
+
+#include <boost/preprocessor/tuple/to_list.hpp>
+#include <boost/preprocessor/tuple/to_seq.hpp>
+
+#else
+
 #include <boost/variadic_macro_data/detail/vmd_detail_native.hpp>
 
+#endif
+
 #define VMD_DETAIL_REMOVE_TUPLE_PARENS(...) \
   __VA_ARGS__ \
 /**/
@@ -30,5 +40,17 @@
   BOOST_PP_TUPLE_REVERSE(size,tuple) \
 /**/
 
+#if BOOST_VMD_MSVC
+
+#define VMD_DETAIL_PP_TUPLE_VC_TO_LIST(size,tuple) \
+  BOOST_PP_TUPLE_TO_LIST(size,tuple) \
+/**/
+
+#define VMD_DETAIL_PP_TUPLE_VC_TO_SEQ(size,tuple) \
+  BOOST_PP_TUPLE_TO_SEQ(size,tuple) \
+/**/
+
+#endif /* BOOST_VMD_MSVC */
+
 #endif // BOOST_VMD_VARIADICS
 #endif // VMD_DETAIL_TUPLE_NATIVE_HPP
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -13,6 +13,7 @@
 #include <boost/variadic_macro_data/vmd_remove_parens.hpp>
 #include <boost/variadic_macro_data/vmd_assert_is_array.hpp>
 #include <boost/variadic_macro_data/vmd_assert_is_list.hpp>
+#include <boost/variadic_macro_data/vmd_assert_is_seq.hpp>
 #include <boost/variadic_macro_data/vmd_assert_is_tuple.hpp>
 
 #endif /* BOOST_VMD_VARIADICS */
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_Is_empty_pplib.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_Is_empty_pplib.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_Is_empty_pplib.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -5,12 +5,6 @@
 
 #if BOOST_VMD_VARIADICS
 
-#include <boost/preprocessor/arithmetic/dec.hpp>
-#include <boost/preprocessor/variadic/size.hpp>
-
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail_is_empty.hpp>
-
 /*
 
   The succeeding comments in this file are in doxygen format.
@@ -22,6 +16,10 @@
 
 #if BOOST_VMD_MSVC
 
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/variadic/size.hpp>
+#include <boost/variadic_macro_data/detail/vmd_detail_is_empty.hpp>
+
 #define BOOST_VMD_IS_EMPTY(param) \
     VMD_DETAIL_IS_EMPTY_IIF \
       ( \
@@ -29,12 +27,12 @@
         ( \
         BOOST_PP_VARIADIC_SIZE \
           ( \
-          VMD_DETAIL_COMMON_EXPAND param \
+          VMD_DETAIL_IS_EMPTY_COMMON_EXPAND param \
           ) \
         ) \
       ) \
       ( \
-      VMD_DETAIL_GEN_ZERO, \
+      VMD_DETAIL_IS_EMPTY_GEN_ZERO, \
       VMD_DETAIL_IS_EMPTY_TUPLE_BEGIN \
       ) \
     (VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C param ()) \
Added: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_seq.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_seq.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,11 @@
+#if !defined(VMD_ASSERT_IS_SEQ_HPP)
+#define VMD_ASSERT_IS_SEQ_HPP
+
+#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
+
+#if BOOST_VMD_VARIADICS
+
+#include <boost/variadic_macro_data/vmd_assert_is_seq_common.hpp>
+
+#endif /* BOOST_VMD_VARIADICS */
+#endif /* VMD_ASSERT_IS_SEQ_HPP */
Added: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_seq_common.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_seq_common.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,40 @@
+#if !defined(VMD_ASSERT_IS_SEQ_COMMON_HPP)
+#define VMD_ASSERT_IS_SEQ_COMMON_HPP
+
+#include <boost/variadic_macro_data/detail/vmd_detail_setup.hpp>
+
+#if BOOST_VMD_VARIADICS
+
+/*
+
+  The succeeding comments in this file are in doxygen format.
+
+*/
+
+/** \file
+*/
+
+#if !BOOST_VMD_ASSERT_DATA
+
+#define BOOST_VMD_ASSERT_IS_SEQ(x)
+
+#else
+
+#include <boost/preprocessor/control/while.hpp>
+#include <boost/variadic_macro_data/detail/vmd_detail_assert_is_seq.hpp>
+
+#define BOOST_VMD_ASSERT_IS_SEQ(x) \
+    VMD_DETAIL_ASSERT_IS_SEQ_CHECK_RETURN_FAILURE \
+      ( \
+      BOOST_PP_WHILE \
+        ( \
+        VMD_DETAIL_ASSERT_IS_SEQ_PRED, \
+        VMD_DETAIL_ASSERT_IS_SEQ_OP, \
+        x \
+        ) \
+      ) \
+/**/
+
+#endif /* BOOST_VMD_ASSERT_DATA */
+#endif /* BOOST_VMD_VARIADICS */
+#endif /* VMD_ASSERT_IS_SEQ_COMMON_HPP */
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_tuple_common.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_tuple_common.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_assert_is_tuple_common.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -25,11 +25,11 @@
 #if !BOOST_VMD_MSVC
 
 #include <boost/preprocessor/debug/assert.hpp>
+#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
 
 #endif
 
 #include <boost/variadic_macro_data/vmd_is_tuple_begin.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
 #include <boost/variadic_macro_data/detail/vmd_detail_assert_is_tuple.hpp>
 
 #if BOOST_VMD_MSVC
@@ -43,7 +43,7 @@
        ( \
        BOOST_VMD_IS_TUPLE_BEGIN(x), \
        VMD_DETAIL_ASSERT_IS_TUPLE_IS_NOT_AFTER, \
-       VMD_DETAIL_GEN_ZERO \
+       VMD_DETAIL_ASSERT_IS_TUPLE_GEN_ZERO \
        ) \
      (x) \
      ) \
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_empty_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_empty_native.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_empty_native.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -5,13 +5,6 @@
 
 #if BOOST_VMD_VARIADICS
 
-#include <boost/preprocessor/arithmetic/dec.hpp>
-
-#include <boost/variadic_macro_data/vmd_data.hpp>
-#include <boost/variadic_macro_data/vmd_is_tuple_begin.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail_is_empty.hpp>
-
 /*
 
   The succeeding comments in this file are in doxygen format.
@@ -21,9 +14,12 @@
 /** \file
 */
 
-
 #if BOOST_VMD_MSVC
 
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/variadic_macro_data/vmd_data.hpp>
+#include <boost/variadic_macro_data/detail/vmd_detail_is_empty.hpp>
+
 #define BOOST_VMD_IS_EMPTY(param) \
     VMD_DETAIL_IS_EMPTY_IIF \
       ( \
@@ -31,13 +27,13 @@
         ( \
         BOOST_VMD_DATA_SIZE \
           ( \
-          VMD_DETAIL_COMMON_EXPAND param \
+          VMD_DETAIL_IS_EMPTY_COMMON_EXPAND param \
           ) \
         ) \
       ) \
       ( \
-      VMD_DETAIL_GEN_ZERO, \
-      BOOST_VMD_IS_TUPLE_BEGIN \
+      VMD_DETAIL_IS_EMPTY_GEN_ZERO, \
+      VMD_DETAIL_IS_EMPTY_VC_IS_TUPLE_BEGIN \
       ) \
     (VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C param ()) \
 /**/
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_tuple_begin_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_tuple_begin_native.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_tuple_begin_native.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -5,11 +5,6 @@
 
 #if BOOST_VMD_VARIADICS
 
-#include <boost/preprocessor/arithmetic/dec.hpp>
-
-#include <boost/variadic_macro_data/vmd_data.hpp>
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
-
 /*
 
   The succeeding comments in this file are in doxygen format.
@@ -21,6 +16,10 @@
 
 #if BOOST_VMD_MSVC
 
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/variadic_macro_data/vmd_data.hpp>
+#include <boost/variadic_macro_data/detail/vmd_detail_is_tuple_begin.hpp>
+
 /// Tests whether its parameter begins with a tuple.
 /**
 
@@ -40,7 +39,7 @@
       ( \
       BOOST_VMD_DATA_SIZE \
         ( \
-        VMD_DETAIL_COMMON_EXPAND param \
+        VMD_DETAIL_IS_TUPLE_BEGIN_COMMON_EXPAND param \
         ) \
       ) \
 /**/
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_tuple_begin_pplib.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_tuple_begin_pplib.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_is_tuple_begin_pplib.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -5,11 +5,6 @@
 
 #if BOOST_VMD_VARIADICS
 
-#include <boost/preprocessor/arithmetic/dec.hpp>
-#include <boost/preprocessor/variadic/size.hpp>
-
-#include <boost/variadic_macro_data/detail/vmd_detail.hpp>
-
 /*
 
   The succeeding comments in this file are in doxygen format.
@@ -21,6 +16,10 @@
 
 #if BOOST_VMD_MSVC
 
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/variadic/size.hpp>
+#include <boost/variadic_macro_data/detail/vmd_detail_is_tuple_begin.hpp>
+
 /// Tests whether its parameter begins with a tuple.
 /**
 
@@ -41,7 +40,7 @@
       ( \
       BOOST_PP_VARIADIC_SIZE \
         ( \
-        VMD_DETAIL_COMMON_EXPAND param \
+        VMD_DETAIL_IS_TUPLE_BEGIN_COMMON_EXPAND param \
         ) \
       ) \
 /**/
Modified: sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_tuple_native.hpp
==============================================================================
--- sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_tuple_native.hpp	(original)
+++ sandbox/variadic_macro_data/boost/variadic_macro_data/vmd_tuple_native.hpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -7,6 +7,12 @@
 
 #include <boost/variadic_macro_data/detail/vmd_detail_tuple.hpp>
 
+#if !BOOST_VMD_MSVC
+
+#include <boost/variadic_macro_data/detail/vmd_detail_native.hpp>
+
+#endif
+
 /*
 
   The succeeding comments in this file are in doxygen format.
@@ -108,6 +114,54 @@
   VMD_DETAIL_PP_TUPLE_REVERSE(BOOST_VMD_PP_TUPLE_SIZE(tuple),tuple) \
 /**/
 
+#if BOOST_VMD_MSVC
+
+/// Expands to a list whose elements are the same as a tuple.
+/**
+
+    tuple = a Boost PP library tuple data type.
+
+    returns = a list whose elements are the same as the tuple
+              that is inputted.
+              
+    In the Boost PP library there is no way to calculate 
+    the size of a tuple, so that the size must be known 
+    in order to be used by Boost PP library tuple macros.
+    With variadic macros the size of a tuple can be 
+    calculated from the tuple itself.
+    
+    Therefore this macro is a replacement for the BOOST_PP_TUPLE_TO_LIST
+    macro without the necessity of having to pass a size.
+    
+*/
+#define BOOST_VMD_PP_TUPLE_TO_LIST(tuple) \
+  VMD_DETAIL_PP_TUPLE_VC_TO_LIST(BOOST_VMD_PP_TUPLE_SIZE(tuple),tuple) \
+/**/
+
+/// Expands to a sequence whose elements are the same as a tuple.
+/**
+
+    tuple = a Boost PP library tuple data type.
+
+    returns = a sequence whose elements are the same as the tuple
+              that is inputted.
+              
+    In the Boost PP library there is no way to calculate 
+    the size of a tuple, so that the size must be known 
+    in order to be used by Boost PP library tuple macros.
+    With variadic macros the size of a tuple can be 
+    calculated from the tuple itself.
+    
+    Therefore this macro is a replacement for the BOOST_PP_TUPLE_TO_SEQ
+    macro without the necessity of having to pass a size.
+    
+*/
+#define BOOST_VMD_PP_TUPLE_TO_SEQ(tuple) \
+  VMD_DETAIL_PP_TUPLE_VC_TO_SEQ(BOOST_VMD_PP_TUPLE_SIZE(tuple),tuple) \
+/**/
+
+#else
+
 /// Expands to a list whose elements are the same as a tuple.
 /**
 
@@ -152,6 +206,8 @@
   VMD_DETAIL_PP_TUPLE_TO_SEQ(BOOST_VMD_PP_TUPLE_SIZE(tuple),tuple) \
 /**/
 
+#endif
+
 /// Expands to variadic macro data whose arguments are the same as a tuple's elements.
 /**
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/Jamfile.v2
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/Jamfile.v2	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/Jamfile.v2	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -62,6 +62,16 @@
           <define>BOOST_VMD_ASSERT_DATA=1 ]
         [ compile-fail test_assert_is_list_fail4.cpp :
           <define>BOOST_VMD_ASSERT_DATA=1 ]
+        [ compile test_assert_is_seq.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1 ]
+        [ compile-fail test_assert_is_seq_fail.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1 ]
+        [ compile-fail test_assert_is_seq_fail2.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1 ]
+        [ compile-fail test_assert_is_seq_fail3.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1 ]
+        [ compile-fail test_assert_is_seq_fail4.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1 ]
     ;
 
 test-suite variadic_macro_data_pplib
@@ -150,4 +160,24 @@
           <define>BOOST_VMD_ASSERT_DATA=1
           <define>BOOST_VMD_PPLIB=1 : 
           test_assert_is_list_fail4_pplib ]
+        [ compile test_assert_is_seq.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1
+          <define>BOOST_VMD_PPLIB=1 : 
+          test_assert_is_seq_pplib ]
+        [ compile-fail test_assert_is_seq_fail.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1
+          <define>BOOST_VMD_PPLIB=1 : 
+          test_assert_is_seq_fail_pplib ]
+        [ compile-fail test_assert_is_seq_fail2.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1
+          <define>BOOST_VMD_PPLIB=1 : 
+          test_assert_is_seq_fail2_pplib.cpp ]
+        [ compile-fail test_assert_is_seq_fail3.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1
+          <define>BOOST_VMD_PPLIB=1 : 
+          test_assert_is_seq_fail3_pplib ]
+        [ compile-fail test_assert_is_seq_fail4.cpp :
+          <define>BOOST_VMD_ASSERT_DATA=1
+          <define>BOOST_VMD_PPLIB=1 : 
+          test_assert_is_seq_fail4_pplib ]
     ;
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -12,7 +12,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_ARRAY_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_ARRAY_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail2.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail2.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail2.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,7 +11,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_ARRAY_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_ARRAY_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail3.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail3.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail3.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,7 +11,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_ARRAY_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_ARRAY_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail4.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail4.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_array_fail4.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,7 +11,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_ARRAY_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_ARRAY_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -12,7 +12,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail2.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail2.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail2.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,7 +11,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail3.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail3.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail3.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,7 +11,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail4.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail4.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_list_fail4.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,7 +11,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_LIST_ERROR[-1];
    
 #endif
 
Added: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq.cpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,21 @@
+#include <boost/variadic_macro_data/vmd_assert_is_seq.hpp>
+// #include <boost/variadic_macro_data/vmd.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+int main()
+  {
+  
+#if BOOST_VMD_VARIADICS
+
+  BOOST_VMD_ASSERT_IS_SEQ((x))
+  BOOST_VMD_ASSERT_IS_SEQ((x)(y))
+  BOOST_VMD_ASSERT_IS_SEQ((x)(y)(z)(2)(3)(4))
+  BOOST_VMD_ASSERT_IS_SEQ((x)(y)(z)((1,2))(3)(4))
+  BOOST_VMD_ASSERT_IS_SEQ((x)(y)(z)((1,2))(3)((4,(x,BOOST_VMD_NIL))))
+  BOOST_VMD_ASSERT_IS_SEQ((x)(y)((x)(y)(z)(2)(3)(4))((1,2))(3)((4,(x,BOOST_VMD_NIL))))
+
+#endif
+
+  return boost::report_errors();
+  
+  }
Added: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail.cpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,21 @@
+#include <boost/variadic_macro_data/vmd_assert_is_seq.hpp>
+// #include <boost/variadic_macro_data/vmd.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+
+int main()
+  {
+  
+#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
+
+  BOOST_VMD_ASSERT_IS_SEQ((y,(x,3,e,2)))
+  
+#else
+
+  typedef char BOOST_VMD_ASSERT_IS_SEQ_ERROR[-1];
+   
+#endif
+
+  return boost::report_errors();
+  
+  }
Added: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail2.cpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail2.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,20 @@
+#include <boost/variadic_macro_data/vmd_assert_is_seq.hpp>
+// #include <boost/variadic_macro_data/vmd.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+int main()
+  {
+  
+#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
+
+  BOOST_VMD_ASSERT_IS_SEQ((y)2(x))
+  
+#else
+
+  typedef char BOOST_VMD_ASSERT_IS_SEQ_ERROR[-1];
+   
+#endif
+
+  return boost::report_errors();
+  
+  }
Added: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail3.cpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail3.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,20 @@
+#include <boost/variadic_macro_data/vmd_assert_is_seq.hpp>
+// #include <boost/variadic_macro_data/vmd.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+int main()
+  {
+  
+#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
+
+  BOOST_VMD_ASSERT_IS_SEQ(y(z)(x))
+  
+#else
+
+  typedef char BOOST_VMD_ASSERT_IS_SEQ_ERROR[-1];
+   
+#endif
+
+  return boost::report_errors();
+  
+  }
Added: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail4.cpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_seq_fail4.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -0,0 +1,20 @@
+#include <boost/variadic_macro_data/vmd_assert_is_seq.hpp>
+// #include <boost/variadic_macro_data/vmd.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+int main()
+  {
+  
+#if BOOST_VMD_VARIADICS && BOOST_VMD_ASSERT_DATA
+  
+  BOOST_VMD_ASSERT_IS_SEQ((z)(x)(72)64)
+  
+#else
+
+  typedef char BOOST_VMD_ASSERT_IS_SEQ_ERROR[-1];
+   
+#endif
+
+  return boost::report_errors();
+  
+  }
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -12,7 +12,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_TUPLE_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_TUPLE_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail2.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail2.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail2.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,7 +11,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_TUPLE_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_TUPLE_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail3.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail3.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail3.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,7 +11,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_TUPLE_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_TUPLE_ERROR[-1];
    
 #endif
 
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail4.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail4.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/test_assert_is_tuple_fail4.cpp	2011-08-07 20:50:35 EDT (Sun, 07 Aug 2011)
@@ -11,7 +11,7 @@
   
 #else
 
-  typedef char BOOST_VMD_ASSERT_IS_TUPLE_ERROR[-1]; \
+  typedef char BOOST_VMD_ASSERT_IS_TUPLE_ERROR[-1];
    
 #endif