Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r69354 - in sandbox/local/boost: detail/preprocessor local local/aux_/function_macros local/aux_/function_macros/code_ local/aux_/preprocessor/sign local/aux_/preprocessor/sign/parsed_params_
From: lorcaminiti_at_[hidden]
Date: 2011-02-27 17:38:56


Author: lcaminiti
Date: 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
New Revision: 69354
URL: http://svn.boost.org/trac/boost/changeset/69354

Log:
Using pp-list instead of my pp-nil-seq.
Removed:
   sandbox/local/boost/detail/preprocessor/nilseq.hpp
Text files modified:
   sandbox/local/boost/local/aux_/function_macros/code_/binding.hpp | 32 ++++++++----------
   sandbox/local/boost/local/aux_/function_macros/code_/deduce_result_type.hpp | 24 +++++++-------
   sandbox/local/boost/local/aux_/function_macros/code_/functor.hpp | 67 +++++++++++++++++++--------------------
   sandbox/local/boost/local/aux_/function_macros/params.hpp | 27 ++++++++-------
   sandbox/local/boost/local/aux_/preprocessor/sign/params_any_bind.hpp | 35 +++++--------------
   sandbox/local/boost/local/aux_/preprocessor/sign/params_bind.hpp | 4 +-
   sandbox/local/boost/local/aux_/preprocessor/sign/params_const_bind.hpp | 6 +--
   sandbox/local/boost/local/aux_/preprocessor/sign/params_unbind.hpp | 15 ++++----
   sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_bind.hpp | 5 +-
   sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_const_bind.hpp | 5 +-
   sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_unbind.hpp | 8 ++-
   sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_unbind_default.hpp | 36 +++++++++++++--------
   sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/nil.hpp | 13 +++----
   sandbox/local/boost/local/function.hpp | 10 +++--
   14 files changed, 140 insertions(+), 147 deletions(-)

Deleted: sandbox/local/boost/detail/preprocessor/nilseq.hpp
==============================================================================
--- sandbox/local/boost/detail/preprocessor/nilseq.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
+++ (empty file)
@@ -1,68 +0,0 @@
-
-// Copyright (C) 2009-2011 Lorenzo Caminiti
-// Use, modification, and distribution is subject to the
-// Boost Software License, Version 1.0
-// (see accompanying file LICENSE_1_0.txt or a copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#ifndef BOOST_DETAIL_PP_NILSEQ_HPP_
-#define BOOST_DETAIL_PP_NILSEQ_HPP_
-
-#include <boost/preprocessor/seq.hpp>
-#include <boost/preprocessor/arithmetic/dec.hpp>
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/logical/not.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/tuple/eat.hpp>
-
-// Utilities to handle sequences starting with `(NIL)` (to support empty seq):
-// nilseq := (BOOST_PP_NIL) [(elem0) (elem1) ...]
-
-// NOTE: `BOOST_PP_LIST` serves a similar purpose but it could not be used in
-// order to reuse signature parsing code. For example, parsed parameters are
-// represented as NILSEQ so parsers code used to parse sign sequence (wich
-// operate on SEQ) can be reused. Similarly, for initializers, concepts, etc.
-
-#define BOOST_DETAIL_PP_NILSEQ_SIZE(nilseq) \
- BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(nilseq)) /* DEC for leading `(NIL)` */
-
-#define BOOST_DETAIL_PP_NILSEQ_IS_NIL(nilseq) \
- BOOST_PP_EQUAL(BOOST_DETAIL_PP_NILSEQ_SIZE(nilseq), 0)
-
-#define BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(nilseq) \
- BOOST_PP_NOT(BOOST_DETAIL_PP_NILSEQ_IS_NIL(nilseq))
-
-// Assume nilseq is not NIL and removes leading `(NIL)`.
-#define BOOST_DETAIL_PP_NILSEQ_TO_SEQ(nilseq) \
- BOOST_PP_SEQ_TAIL(nilseq)
-
-#define BOOST_DETAIL_PP_NILSEQ_ELEM(n, nilseq) \
- BOOST_PP_SEQ_ELEM(BOOST_PP_INC(n), nilseq) /* INC for leading `(NIL)` */
-
-// ENUM //
-
-#define BOOST_DETAIL_PP_NILSEQ_ENUM_(nilseq) \
- BOOST_PP_SEQ_ENUM(BOOST_DETAIL_PP_NILSEQ_TO_SEQ(nileseq))
-
-#define BOOST_DETAIL_PP_NILSEQ_ENUM(nilseq) \
- BOOST_PP_IIF(BOOST_DETAIL_PP_NILSEQ_IS_NIL(nilseq), \
- BOOST_PP_TUPLE_EAT(1) \
- , \
- BOOST_DETAIL_PP_NILSEQ_ENUM_ \
- )(nilseq)
-
-// FOR_EACH_I //
-
-#define BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I_(op, data, nilseq) \
- /* got here iif nilseq size not nil, TAIL removes leading `(NIL)` */ \
- BOOST_PP_SEQ_FOR_EACH_I(op, data, BOOST_DETAIL_PP_NILSEQ_TO_SEQ(nilseq))
-
-#define BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I(op, data, nilseq) \
- BOOST_PP_IIF(BOOST_DETAIL_PP_NILSEQ_IS_NIL(nilseq), \
- BOOST_PP_TUPLE_EAT(3) \
- , \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I_ \
- )(op, data, nilseq)
-
-#endif // #include guard
-

Modified: sandbox/local/boost/local/aux_/function_macros/code_/binding.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/function_macros/code_/binding.hpp (original)
+++ sandbox/local/boost/local/aux_/function_macros/code_/binding.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -12,45 +12,43 @@
 #include "../../symbol.hpp"
 #include "../../scope_exit/scope_exit.hpp" // Use this lib's ScopeExit impl.
 #include "../../preprocessor/sign/params_any_bind.hpp"
-#include <boost/detail/preprocessor/nilseq.hpp>
 #include <boost/preprocessor/control/iif.hpp>
 #include <boost/preprocessor/control/expr_iif.hpp>
-#include <boost/preprocessor/seq/for_each_i.hpp>
+#include <boost/preprocessor/list/adt.hpp> // For `IS_CONS`.
+#include <boost/preprocessor/list/for_each_i.hpp>
 #include <boost/preprocessor/cat.hpp>
 
 // PRIVATE //
 
 // Adapted from `BOOST_SCOPE_EXIT_AUX_IMPL()`.
 #define BOOST_LOCAL_AUX_FUNCTION_CODE_BINDING_WITH_TAGS_SEQ_( \
- all_bind_nilseq, has_any_bind_this, id, typename_keyword) \
+ all_binds, has_any_bind_this, id, typename_keyword) \
     /* binding tags */ \
     BOOST_PP_EXPR_IIF(has_any_bind_this, \
         BOOST_SCOPE_EXIT_TYPEDEF_TYPEOF_THIS() \
         BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_THIS_TYPE(id); \
     ) \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
- BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_TAG_DECL, \
- id, all_bind_nilseq) \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
- BOOST_SCOPE_EXIT_AUX_CAPTURE_DECL, \
- (id, typename_keyword), all_bind_nilseq) \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_TAG_DECL, \
+ id, all_binds) \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_SCOPE_EXIT_AUX_CAPTURE_DECL, \
+ (id, typename_keyword), all_binds) \
     /* binding class */ \
     struct BOOST_SCOPE_EXIT_AUX_PARAMS_T(id) { \
         BOOST_PP_EXPR_IIF(has_any_bind_this, \
             BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_THIS_TYPE(id) \
             BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_THIS_NAME; \
         ) \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I(BOOST_SCOPE_EXIT_AUX_PARAM_DECL, \
- (id, typename_keyword), all_bind_nilseq) \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I(BOOST_SCOPE_EXIT_AUX_MEMBER, \
- id, all_bind_nilseq) \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_SCOPE_EXIT_AUX_PARAM_DECL, \
+ (id, typename_keyword), all_binds) \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_SCOPE_EXIT_AUX_MEMBER, \
+ id, all_binds) \
     } BOOST_LOCAL_AUX_SYMBOL_PARAMS_LOCAL_VARIABLE_NAME(id) = { \
         /* initialize the struct with param values to bind */ \
         BOOST_PP_EXPR_IIF(has_any_bind_this, this) \
- BOOST_PP_COMMA_IF(BOOST_PP_BITAND(has_any_bind_this, BOOST_PP_NOT( \
- BOOST_DETAIL_PP_NILSEQ_IS_NIL(all_bind_nilseq)))) \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
- BOOST_SCOPE_EXIT_AUX_PARAM_INIT, id, all_bind_nilseq) \
+ BOOST_PP_COMMA_IF(BOOST_PP_BITAND(has_any_bind_this, \
+ BOOST_PP_LIST_IS_CONS(all_binds))) \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_SCOPE_EXIT_AUX_PARAM_INIT, \
+ id, all_binds) \
     };
 
 // Assume has some bind param.

Modified: sandbox/local/boost/local/aux_/function_macros/code_/deduce_result_type.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/function_macros/code_/deduce_result_type.hpp (original)
+++ sandbox/local/boost/local/aux_/function_macros/code_/deduce_result_type.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -9,34 +9,34 @@
 #include <boost/preprocessor/facilities/is_empty.hpp>
 
 // This must follow the result type.
-#define BOOST_LOCAL_AUX_FUNCTION_CODE_DEDUCE_RESULT_TYPE( \
- id, typename_keyword) \
+#define BOOST_LOCAL_AUX_FUNCTION_CODE_DEDUCE_RESULT_TYPE(id, is_template) \
     /* result type here */ (*BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_FUNC(id))(); \
     /* the many tagging, wrapping, etc that follow are taken from */ \
     /* Boost.ScopeExit type deduction mechanism and they are necessary */ \
     /* within template on GCC to work around a compiler internal error */ \
     typedef void (*BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_TAG(id))( \
             int BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_FUNC(id)); \
- typedef BOOST_PP_IIF(BOOST_PP_IS_EMPTY(typename_keyword), \
- BOOST_TYPEOF \
- , \
+ typedef BOOST_PP_IIF(is_template, \
                 BOOST_TYPEOF_TPL \
+ , \
+ BOOST_TYPEOF \
             )(boost::scope_exit::aux::wrap( \
             boost::scope_exit::aux::deref( \
                     BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_FUNC(id), \
                     (BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_TAG(id))0))) \
             BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_WRAP(id); \
- typedef typename_keyword BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_WRAP(id):: \
- type BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_CAPTURE(id); \
+ typedef BOOST_PP_EXPR_IIF(is_template, typename) \
+ BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_WRAP(id)::type \
+ BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_CAPTURE(id); \
     struct BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_PARAMS(id) { \
         typedef BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_CAPTURE(id) \
                 function_ptr_type;\
     }; \
- typedef typename_keyword boost::remove_pointer<typename_keyword \
- BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_PARAMS(id):: \
- function_ptr_type>::type \
- BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_FUNC_TYPE(id); \
- typedef typename_keyword boost::function_traits< \
+ typedef BOOST_PP_EXPR_IIF(is_template, typename) boost::remove_pointer< \
+ BOOST_PP_EXPR_IIF(is_template, typename) \
+ BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_PARAMS(id)::function_ptr_type \
+ >::type BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_FUNC_TYPE(id); \
+ typedef BOOST_PP_EXPR_IIF(is_template, typename) boost::function_traits< \
             BOOST_LOCAL_AUX_SYMBOL_DEDUCE_RESULT_FUNC_TYPE(id)>::result_type \
             BOOST_LOCAL_AUX_SYMBOL_RESULT_TYPE(id);
 

Modified: sandbox/local/boost/local/aux_/function_macros/code_/functor.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/function_macros/code_/functor.hpp (original)
+++ sandbox/local/boost/local/aux_/function_macros/code_/functor.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -18,7 +18,6 @@
 #include "../../../config.hpp"
 #include "../../../function.hpp"
 #include <boost/type_traits.hpp>
-#include <boost/detail/preprocessor/nilseq.hpp>
 #include <boost/preprocessor/punctuation/comma_if.hpp>
 #include <boost/preprocessor/logical/bitand.hpp>
 #include <boost/preprocessor/logical/bitand.hpp>
@@ -29,6 +28,8 @@
 #include <boost/preprocessor/control/iif.hpp>
 #include <boost/preprocessor/control/expr_iif.hpp>
 #include <boost/preprocessor/tuple/eat.hpp>
+#include <boost/preprocessor/list/adt.hpp> // For `IS_CONS`.
+#include <boost/preprocessor/list/for_each_i.hpp>
 
 // PRIVATE //
 
@@ -38,7 +39,7 @@
     BOOST_LOCAL_AUX_SYMBOL_RESULT_TYPE(id) \
     BOOST_PP_EXPR_IIF(has_type, (type_name) ) \
     ( \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
+ BOOST_PP_LIST_FOR_EACH_I( \
                 BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_UNBIND_DECL, ~, \
                 BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(sign_params)) \
     )
@@ -51,37 +52,37 @@
         id, typename_keyword) \
     BOOST_LOCAL_AUX_SYMBOL_RESULT_TYPE(id) \
     operator()( \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
- BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_UNBIND_ARG_DECL, \
- typename_keyword, unbinds) \
+ BOOST_PP_LIST_FOR_EACH_I( \
+ BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_UNBIND_ARG_DECL, \
+ typename_keyword, unbinds) \
             ) { \
         /* just forward call to member function with local func name */ \
         return BOOST_LOCAL_AUX_SYMBOL_BODY_FUNCTION_NAME( \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
+ BOOST_PP_LIST_FOR_EACH_I( \
                     BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_MAYBECONST_BIND, \
                     (id, 0 /* no offset */), \
                     const_binds) \
             /* pass plain binds */ \
             BOOST_PP_COMMA_IF( \
                 BOOST_PP_BITAND( \
- BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(const_binds) \
- , BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(binds) \
+ BOOST_PP_LIST_IS_CONS(const_binds) \
+ , BOOST_PP_LIST_IS_CONS(binds) \
                 ) \
             ) \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
+ BOOST_PP_LIST_FOR_EACH_I( \
                     BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_MAYBECONST_BIND, \
                     (id \
                     /* offset param index of # of preceeding */ \
                     /* const-bind params (could be 0)*/ \
- , BOOST_DETAIL_PP_NILSEQ_SIZE(const_binds) \
+ , BOOST_PP_LIST_SIZE(const_binds) \
                     ), \
                     binds) \
             /* pass bind `this` */ \
             BOOST_PP_COMMA_IF( \
                 BOOST_PP_BITAND( \
                       BOOST_PP_BITOR( \
- BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(const_binds) \
- , BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(binds) \
+ BOOST_PP_LIST_IS_CONS(const_binds) \
+ , BOOST_PP_LIST_IS_CONS(binds) \
                       ) \
                     , BOOST_PP_BITOR(has_const_bind_this, has_bind_this) \
                 ) \
@@ -96,15 +97,15 @@
                 BOOST_PP_BITAND( \
                       BOOST_PP_BITOR( \
                           BOOST_PP_BITOR( \
- BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(const_binds) \
- , BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(binds) \
+ BOOST_PP_LIST_IS_CONS(const_binds) \
+ , BOOST_PP_LIST_IS_CONS(binds) \
                           ) \
                         , BOOST_PP_BITOR(has_const_bind_this, has_bind_this) \
                       ) \
- , BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(unbinds) \
+ , BOOST_PP_LIST_IS_CONS(unbinds) \
                 ) \
             ) \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
+ BOOST_PP_LIST_FOR_EACH_I( \
                     BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_UNBIND_ARG_NAME, \
                     ~, unbinds) \
         ); \
@@ -113,9 +114,8 @@
 // Return unbind params but without last (default) params specified by count.
 #define BOOST_LOCAL_AUX_FUNCTION_CODE_FUNCTOR_UNBIND_REMOVE_LAST_N_(n, \
         unbinds) \
- /* must use PP_SEQ instead of PP_NILSEQ so resulting seq is still nil */ \
- BOOST_PP_SEQ_FIRST_N(BOOST_PP_SUB(BOOST_PP_SEQ_SIZE( \
- unbinds), n), unbinds)
+ BOOST_PP_LIST_FIRST_N(BOOST_PP_SUB(BOOST_PP_LIST_SIZE(unbinds), n), \
+ unbinds)
 
 #define BOOST_LOCAL_AUX_FUNCTION_CODE_FUNCTOR_CALL_FOR_DEFAULTS_(z, \
         n, params_unbinds_constbinds_hasconstthis_binds_hasthis_id_typename) \
@@ -187,17 +187,17 @@
         /* alwasy attached to the & symbol plus programmers can always */ \
         /* remove const& using type traits) */ \
         /* const bind typeof types */ \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
+ BOOST_PP_LIST_FOR_EACH_I( \
                 BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_CONST_TYPEDEF, \
                 (id, typename_keyword, 0 /* no offset */), \
                 const_binds) \
         /* bind typeof types */ \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
+ BOOST_PP_LIST_FOR_EACH_I( \
                 BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_TYPEDEF, \
                 ( id, typename_keyword, \
                   /* offset param index of # of preceeding */ \
                   /* const-bindparams (could be 0)*/ \
- BOOST_DETAIL_PP_NILSEQ_SIZE(const_binds)),\
+ BOOST_PP_LIST_SIZE(const_binds)),\
                 binds) \
         /* this (const or not) bind type */ \
         BOOST_PP_EXPR_IIF(has_const_bind_this, \
@@ -227,30 +227,30 @@
         BOOST_LOCAL_AUX_SYMBOL_RESULT_TYPE(id) \
         BOOST_LOCAL_AUX_SYMBOL_BODY_FUNCTION_NAME( \
                 /* const binds */ \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
+ BOOST_PP_LIST_FOR_EACH_I( \
                         BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_CONST_BIND_DECL, \
                         (id, typename_keyword, 0 /* no offset */), \
                         const_binds) \
                 /* plain binds */ \
                 BOOST_PP_COMMA_IF( \
                     BOOST_PP_BITAND( \
- BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(const_binds) \
- , BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(binds) \
+ BOOST_PP_LIST_IS_CONS(const_binds) \
+ , BOOST_PP_LIST_IS_CONS(binds) \
                     ) \
                 ) \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
+ BOOST_PP_LIST_FOR_EACH_I( \
                         BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_BIND_DECL, \
                         ( id, typename_keyword, \
                           /* offset param index of # of preceeding */ \
                           /* const-bindparams (could be 0)*/ \
- BOOST_DETAIL_PP_NILSEQ_SIZE(const_binds) ),\
+ BOOST_PP_LIST_SIZE(const_binds) ),\
                         binds) \
                 /* `this` bind */ \
                 BOOST_PP_COMMA_IF( \
                     BOOST_PP_BITAND( \
                           BOOST_PP_BITOR( \
- BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(const_binds) \
- , BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(binds) \
+ BOOST_PP_LIST_IS_CONS(const_binds) \
+ , BOOST_PP_LIST_IS_CONS(binds) \
                           ) \
                         , BOOST_PP_BITOR(has_const_bind_this, has_bind_this) \
                     ) \
@@ -269,17 +269,16 @@
                     BOOST_PP_BITAND( \
                           BOOST_PP_BITOR( \
                               BOOST_PP_BITOR( \
- BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL( \
- const_binds) \
- , BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(binds) \
+ BOOST_PP_LIST_IS_CONS(const_binds) \
+ , BOOST_PP_LIST_IS_CONS(binds) \
                               ) \
                             , BOOST_PP_BITOR(has_const_bind_this, \
                                     has_bind_this) \
                           ) \
- , BOOST_DETAIL_PP_NILSEQ_IS_NOT_NIL(unbinds) \
+ , BOOST_PP_LIST_IS_CONS(unbinds) \
                     ) \
                 ) \
- BOOST_DETAIL_PP_NILSEQ_FOR_EACH_I( \
+ BOOST_PP_LIST_FOR_EACH_I( \
                         BOOST_LOCAL_AUX_FUNCTION_CODE_PARAM_UNBIND_DECL_WITH_DEFAULT, \
                         ~, unbinds) \
             ) /* end body function params */ \

Modified: sandbox/local/boost/local/aux_/function_macros/params.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/function_macros/params.hpp (original)
+++ sandbox/local/boost/local/aux_/function_macros/params.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -19,38 +19,39 @@
 
 // PRIVATE //
 
-#define BOOST_LOCAL_AUX_FUNCTION_PARAMS_OK_(sign_params, id, typename_keyword) \
- BOOST_LOCAL_AUX_FUNCTION_CODE_BINDING(sign_params, id, typename_keyword) \
- BOOST_LOCAL_AUX_FUNCTION_CODE_FUNCTOR(sign_params, id, typename_keyword)
+#define BOOST_LOCAL_AUX_FUNCTION_PARAMS_TYPENAME_KEYWORD_(is_template) \
+ BOOST_PP_IIF(is_template, BOOST_PP_IDENTITY(typename), BOOST_PP_EMPTY)()
 
-#define BOOST_LOCAL_AUX_FUNCTION_PARAMS_ERROR_( \
- sign_params, id, typename_keyword) \
+#define BOOST_LOCAL_AUX_FUNCTION_PARAMS_OK_(sign_params, id, is_template) \
+ BOOST_LOCAL_AUX_FUNCTION_CODE_BINDING(sign_params, id, \
+ BOOST_LOCAL_AUX_FUNCTION_PARAMS_TYPENAME_KEYWORD_(is_template)) \
+ BOOST_LOCAL_AUX_FUNCTION_CODE_FUNCTOR(sign_params, id, \
+ BOOST_LOCAL_AUX_FUNCTION_PARAMS_TYPENAME_KEYWORD_(is_template))
+
+#define BOOST_LOCAL_AUX_FUNCTION_PARAMS_ERROR_(sign_params, id, is_template) \
     ; /* close eventual previous statements, otherwise it has no effect */ \
     BOOST_MPL_ASSERT_MSG(false, /* always fails (there's an error) */ \
             BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ERROR_MSG(sign_params), ()) \
     ; /* must close ASSERT macro for eventual use within class scope */
 
 // sign_params: parsed parenthesized params.
-#define BOOST_LOCAL_AUX_FUNCTION_PARAMS_(sign_params, id, typename_keyword) \
+#define BOOST_LOCAL_AUX_FUNCTION_PARAMS_(sign_params, id, is_template) \
     /* this must follow the result type (this code must be always present */ \
     /* even if there's an error because result type always present) */ \
- BOOST_LOCAL_AUX_FUNCTION_CODE_DEDUCE_RESULT_TYPE(id, typename_keyword) \
+ BOOST_LOCAL_AUX_FUNCTION_CODE_DEDUCE_RESULT_TYPE(id, is_template) \
     /* rest of the code */ \
     BOOST_PP_IIF(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_ERROR(sign_params), \
         BOOST_LOCAL_AUX_FUNCTION_PARAMS_ERROR_ \
     , \
         BOOST_LOCAL_AUX_FUNCTION_PARAMS_OK_ \
- )(sign_params, id, typename_keyword)
+ )(sign_params, id, is_template)
 
 // PUBLIC //
 
-// typename_keyword: `typename` in type depended context (i.e., templates),
-// `EMPTY()` otherwise.
-#define BOOST_LOCAL_AUX_FUNCTION_PARAMS( \
- parenthesized_params, id, typename_keyword) \
+#define BOOST_LOCAL_AUX_FUNCTION_PARAMS(parenthesized_params, id, is_template) \
     BOOST_LOCAL_AUX_FUNCTION_PARAMS_( \
             BOOST_LOCAL_AUX_PP_SIGN_PARSE_PARAMS(parenthesized_params), \
- id, typename_keyword)
+ id, is_template)
 
 #endif // #include guard
 

Modified: sandbox/local/boost/local/aux_/preprocessor/sign/params_any_bind.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/preprocessor/sign/params_any_bind.hpp (original)
+++ sandbox/local/boost/local/aux_/preprocessor/sign/params_any_bind.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -5,18 +5,9 @@
 #include "params_const_bind.hpp"
 #include "params_bind.hpp"
 #include <boost/preprocessor/logical/bitor.hpp>
-#include <boost/preprocessor/seq.hpp> // For `PP_SEQ_TAIL`.
 #include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/control/expr_iif.hpp>
 #include <boost/preprocessor/tuple/eat.hpp>
-
-// Private //
-
-// Return nil-seq with any bind (const or not) but not unbind.
-#define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ALL_BIND_SEQ_TAIL_(params, seq_macro) \
- BOOST_PP_SEQ_TAIL(seq_macro(params))
-
-// Public //
+#include <boost/preprocessor/list/append.hpp>
 
 // Expand to 1 iff `this` is bound (const or not).
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_ANY_BIND_THIS(params) \
@@ -48,25 +39,19 @@
 // Expand to nil-seq `(NIL) ([&]var) ...` with all binds (const or not) but
 // excluding `this`.
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ALL_BIND_WITHOUT_THIS(params) \
- (BOOST_PP_NIL) \
- BOOST_PP_IIF(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_CONST_BIND(params), \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ALL_BIND_SEQ_TAIL_ \
- , \
- BOOST_PP_TUPLE_EAT(2) \
- )(params, BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND) \
- BOOST_PP_IIF(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_BIND(params), \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ALL_BIND_SEQ_TAIL_ \
- , \
- BOOST_PP_TUPLE_EAT(2) \
- )(params, BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND)
+ BOOST_PP_LIST_APPEND(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params), \
+ BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params))
 
 // Expand to nil-seq `(NIL) ([&]var) ...` with all binds (const or not) and
 // including `this` if bound (const or not).
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ALL_BIND(params) \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ALL_BIND(params) \
- BOOST_PP_EXPR_IIF(BOOST_PP_EXPAND( /* expand for MSVC */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_ANY_BIND_THIS(params)), \
- (this) /* never by reference because `&this` is not valid in C++ */ \
+ BOOST_PP_LIST_APPEND(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ALL_BIND(params), \
+ BOOST_PP_IIF(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_ANY_BIND_THIS( \
+ params), \
+ (this, BOOST_PP_NIL) /* `this` never by ref because in C++ */ \
+ , \
+ BOOST_PP_NIL \
+ ) \
     )
 
 #endif // #include guard

Modified: sandbox/local/boost/local/aux_/preprocessor/sign/params_bind.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/preprocessor/sign/params_bind.hpp (original)
+++ sandbox/local/boost/local/aux_/preprocessor/sign/params_bind.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -4,6 +4,7 @@
 
 #include "parsed_params_/index.hpp"
 #include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/list/adt.hpp> // For `IS_CONS`.
 
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params) \
     BOOST_PP_TUPLE_ELEM(BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_MAX, \
@@ -11,8 +12,7 @@
             params)
 
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_BIND(params) \
- BOOST_PP_GREATER(BOOST_PP_SEQ_SIZE( /* size > 1 because nil-seq */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params)), 1)
+ BOOST_PP_LIST_IS_CONS(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params))
 
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND_THIS_COUNT(params) \
     BOOST_PP_TUPLE_ELEM(BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_MAX, \

Modified: sandbox/local/boost/local/aux_/preprocessor/sign/params_const_bind.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/preprocessor/sign/params_const_bind.hpp (original)
+++ sandbox/local/boost/local/aux_/preprocessor/sign/params_const_bind.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -4,8 +4,7 @@
 
 #include "parsed_params_/index.hpp"
 #include <boost/preprocessor/tuple/elem.hpp>
-#include <boost/preprocessor/seq/size.hpp>
-#include <boost/preprocessor/comparison/greater.hpp>
+#include <boost/preprocessor/list/adt.hpp> // For `IS_CONS`.
 
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params) \
     BOOST_PP_TUPLE_ELEM(BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_MAX, \
@@ -13,8 +12,7 @@
             params)
 
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_CONST_BIND(params) \
- BOOST_PP_GREATER(BOOST_PP_SEQ_SIZE( /* size > 1 because nil-seq */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params)), 1)
+ BOOST_PP_LIST_IS_CONS(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params))
 
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_COUNT(params) \
     BOOST_PP_TUPLE_ELEM(BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_MAX, \

Modified: sandbox/local/boost/local/aux_/preprocessor/sign/params_unbind.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/preprocessor/sign/params_unbind.hpp (original)
+++ sandbox/local/boost/local/aux_/preprocessor/sign/params_unbind.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -8,8 +8,8 @@
 #include <boost/preprocessor/arithmetic/inc.hpp>
 #include <boost/preprocessor/control/iif.hpp>
 #include <boost/preprocessor/logical/not.hpp>
-#include <boost/preprocessor/seq/fold_left.hpp>
-#include <boost/preprocessor/seq.hpp> // For TAIL.
+#include <boost/preprocessor/list/adt.hpp> // For `IS_CONS`.
+#include <boost/preprocessor/list/fold_left.hpp>
 
 // PRIVATE //
 
@@ -27,12 +27,12 @@
         defaults_count BOOST_PP_TUPLE_EAT(1) \
     )(defaults_count)
 
-// Precondition: unbinds is a nil-seq which is not nil.
+// Precondition: unbinds is a pp-list which is not nil.
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND_COUNT_DEFAULTS_(unbinds) \
- BOOST_PP_SEQ_FOLD_LEFT( \
+ BOOST_PP_LIST_FOLD_LEFT( \
             BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND_COUNT_DEFAULTS_OP_, \
             0 /* start with defaults_count to 0 */, \
- BOOST_PP_SEQ_TAIL(unbinds)) /* TAIL for leading NIL */
+ unbinds)
 
 // Expand to `default ... EMPTY()` if default value, `EMPTY()` otherwise.
 // Leading default is kept because default value might not be alphanumeric
@@ -61,14 +61,13 @@
     BOOST_PP_NOT(BOOST_PP_IS_EMPTY( \
             BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND_PARAM_DEFAULT_(param)))
 
-// Expand to nil-seq of ALL unbind params.
+// Expand to pp-list of ALL unbind params.
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(params) \
     BOOST_PP_TUPLE_ELEM(BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_MAX, \
             BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_UNBIND, params)
 
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_UNBIND(params) \
- BOOST_PP_GREATER(BOOST_PP_SEQ_SIZE( /* size > 1 because nil-seq */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(params)), 1)
+ BOOST_PP_LIST_IS_CONS(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(params))
 
 #define BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND_COUNT_DEFAULTS(params) \
     BOOST_PP_IIF(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_UNBIND(params), \

Modified: sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_bind.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_bind.hpp (original)
+++ sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_bind.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -5,6 +5,7 @@
 #include "../params_unbind.hpp"
 #include "../params_bind.hpp"
 #include "../params_const_bind.hpp"
+#include <boost/preprocessor/list/append.hpp>
 
 // bind_qualified_name: [&] name
 #define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_BIND( \
@@ -16,8 +17,8 @@
     , /* const-bind `this` count */ \
         BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_COUNT(params) \
     , /* bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params) \
- (bind_qualified_name) /* append */ \
+ BOOST_PP_LIST_APPEND(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params), \
+ (bind_qualified_name, BOOST_PP_NIL)) \
     , /* bind `this` count */ \
         BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND_THIS_COUNT(params) \
     , /* error message (if any) */ \

Modified: sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_const_bind.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_const_bind.hpp (original)
+++ sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_const_bind.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -5,6 +5,7 @@
 #include "../params_unbind.hpp"
 #include "../params_bind.hpp"
 #include "../params_const_bind.hpp"
+#include <boost/preprocessor/list/append.hpp>
 
 // const_bind_qualified_name: [&] name (with name != `this`)
 #define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_CONST_BIND( \
@@ -12,8 +13,8 @@
     ( /* unbind params and defaults */ \
         BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(params) \
     , /* const-bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params) \
- (const_bind_qualified_name) /* append */ \
+ BOOST_PP_LIST_APPEND(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params),\
+ (const_bind_qualified_name, BOOST_PP_NIL))\
     , /* const-bind `this` count */ \
         BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_COUNT(params) \
     , /* bind names */ \

Modified: sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_unbind.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_unbind.hpp (original)
+++ sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_unbind.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -6,14 +6,16 @@
 #include "../params_bind.hpp"
 #include "../params_const_bind.hpp"
 #include <boost/preprocessor/facilities/empty.hpp>
+#include <boost/preprocessor/list/append.hpp>
 
 // unbind_classified_type_and_name: [auto | register] type name
 #define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_UNBIND( \
         params, unbind_classified_type_and_name) \
     ( /* unbind params and defaults */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(params) \
- /* append param (with no default -- EMPTY) */ \
- ((unbind_classified_type_and_name, BOOST_PP_EMPTY)) \
+ BOOST_PP_LIST_APPEND(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(params), \
+ /* append param (with no default -- EMPTY) */ \
+ ((unbind_classified_type_and_name, BOOST_PP_EMPTY), \
+ BOOST_PP_NIL)) \
     , /* const-bind names */ \
         BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params) \
     , /* const-bind `this` count */ \

Modified: sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_unbind_default.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_unbind_default.hpp (original)
+++ sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/append_unbind_default.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -6,29 +6,37 @@
 #include "../params_bind.hpp"
 #include "../params_const_bind.hpp"
 #include <boost/preprocessor/facilities/empty.hpp>
-#include <boost/preprocessor/seq/pop_back.hpp>
-#include <boost/preprocessor/seq/elem.hpp>
-#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/list/size.hpp>
+#include <boost/preprocessor/list/at.hpp>
+#include <boost/preprocessor/list/append.hpp>
+#include <boost/preprocessor/list/first_n.hpp>
 
 // Private API.
 
 #define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_UNBIND_DEFAULT_( \
- unbind_nilseq, default_value) \
- BOOST_PP_SEQ_POP_BACK(unbind_nilseq) \
- (( /* seq of 2-tuple params */ \
- /* last appended classifier type and name */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND_PARAM_DECL(BOOST_PP_SEQ_ELEM( \
- /* nil-seq so can always safely decrement size */ \
- BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(unbind_nilseq)), \
- unbind_nilseq)) \
+ unbinds, default_value) \
+ /* `DEC` ok because precondition that unbinds are not nil-list */ \
+ BOOST_PP_LIST_APPEND( \
+ BOOST_PP_LIST_FIRST_N(BOOST_PP_DEC(BOOST_PP_LIST_SIZE(unbinds)), \
+ unbinds) \
     , \
- /* trailing EMPTY because defaults are optional */ \
- default_value BOOST_PP_EMPTY \
- ))
+ ( /* list 2-tuple */ \
+ ( /* (param_decl, default) 2-tuple */ \
+ BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND_PARAM_DECL( \
+ BOOST_PP_LIST_AT(unbinds, BOOST_PP_DEC( \
+ BOOST_PP_LIST_SIZE(unbinds)))) \
+ , \
+ default_value BOOST_PP_EMPTY \
+ ) \
+ , \
+ BOOST_PP_NIL \
+ ) \
+ )
 
 // Public API.
 
 // default_value: a valid parameter default value (`-1`, etc)
+// Precondition: already added unbinds are not nil-list.
 #define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_UNBIND_DEFAULT( \
         params, default_value) \
     ( /* unbind params and defaults */ \

Modified: sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/nil.hpp
==============================================================================
--- sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/nil.hpp (original)
+++ sandbox/local/boost/local/aux_/preprocessor/sign/parsed_params_/nil.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -7,17 +7,16 @@
 // See "index_.hpp".
 #define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_NIL \
     ( \
- /* unbound params: nil-seq of 2-tuples */ \
- /* `((NIL, NIL)) ((classifier_type_name, default)) ...` */ \
- ( (BOOST_PP_NIL, BOOST_PP_NIL BOOST_PP_EMPTY) ) \
+ /* unbound params: list of 2-tuples (classified_name, default) */ \
+ BOOST_PP_NIL /* nil list */ \
     , \
- /* const-binds: nil-seq of 1-tuple `(NIL) (ref_name) ...` */ \
- (BOOST_PP_NIL) \
+ /* const-binds: nil-seq of 1-tuple `ref_name` */ \
+ BOOST_PP_NIL /* nil list */ \
     , \
         0 /* number of const-bind `this` */ \
     , \
- /* binds: nil-seq of 1-tuple `(NIL) (ref_name) ...` */ \
- (BOOST_PP_NIL) \
+ /* binds: nil-seq of 1-tuple `ref_name` */ \
+ BOOST_PP_NIL /* nil list */ \
     , \
         0 /* number of bind `this` */ \
     , \

Modified: sandbox/local/boost/local/function.hpp
==============================================================================
--- sandbox/local/boost/local/function.hpp (original)
+++ sandbox/local/boost/local/function.hpp 2011-02-27 17:38:49 EST (Sun, 27 Feb 2011)
@@ -20,10 +20,12 @@
 #if defined(BOOST_NO_VARIADIC_MACROS)
 
 #define BOOST_LOCAL_FUNCTION_PARAMS(parameter_list) \
- BOOST_LOCAL_AUX_FUNCTION_PARAMS(parameter_list, __LINE__, BOOST_PP_EMPTY())
+ BOOST_LOCAL_AUX_FUNCTION_PARAMS(parameter_list, \
+ __LINE__, 0 /* no template */)
 
 #define BOOST_LOCAL_FUNCTION_PARAMS_TPL(parameter_list) \
- BOOST_LOCAL_AUX_FUNCTION_PARAMS(parameter_list, __LINE__, typename)
+ BOOST_LOCAL_AUX_FUNCTION_PARAMS(parameter_list, \
+ __LINE__, 1 /* template */)
 
 #else // BOOST_NO_VARIADIC_MACROS
 
@@ -32,12 +34,12 @@
 #define BOOST_LOCAL_FUNCTION_PARAMS(...) \
     BOOST_LOCAL_AUX_FUNCTION_PARAMS(BOOST_LOCAL_AUX_PP_VA_TO_SEQ( \
             (void) /* for empty seq */, __VA_ARGS__), \
- __LINE__, BOOST_PP_EMPTY())
+ __LINE__, 0 /* no template */)
 
 #define BOOST_LOCAL_FUNCTION_PARAMS_TPL(...) \
     BOOST_LOCAL_AUX_FUNCTION_PARAMS(BOOST_LOCAL_AUX_PP_VA_TO_SEQ( \
             (void) /* for empty seq */, __VA_ARGS__), \
- __LINE__, typename)
+ __LINE__, 1 /* template */)
 
 #endif // BOOST_NO_VARIADIC_MACROS
 


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