Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r76020 - in sandbox/closure/boost/closure/aux_/preprocessor/traits: . decl_ decl_/validate_ decl_sign_
From: lorcaminiti_at_[hidden]
Date: 2011-12-17 09:20:07


Author: lcaminiti
Date: 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
New Revision: 76020
URL: http://svn.boost.org/trac/boost/changeset/76020

Log:
Renaming closure.
Added:
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_param.hpp
      - copied, changed from r76000, /sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_params.hpp
Removed:
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_bind.hpp
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_bind_this_type.hpp
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_const_bind.hpp
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_const_bind_this_type.hpp
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_unbind.hpp
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_unbind_default.hpp
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_params.hpp
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_sign_/valid.hpp
Text files modified:
   sandbox/closure/boost/closure/aux_/preprocessor/traits/bind.hpp | 18 +++++---
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/index.hpp | 18 ++++----
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/nil.hpp | 6 +-
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/set_error.hpp | 26 ++++++-----
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/validate.hpp | 12 +++--
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/validate_/this_count.hpp | 35 ++++++++-------
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_any_bind.hpp | 18 ++++---
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_bind.hpp | 16 +++++--
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_const_bind.hpp | 16 +++++--
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_error.hpp | 4 +
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_param.hpp | 22 ++++++---
   sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_sign_/sign.hpp | 88 +++++++++++++++++++++++++++++++++++++++
   12 files changed, 198 insertions(+), 81 deletions(-)

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/bind.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/bind.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/bind.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -20,27 +20,31 @@
 
 // PUBLIC //
 
-// Bind non-this (const or not).
+// Bind variable (const or not).
 
-#define BOOST_CLOSURE_AUX_PP_BIND_TRAITS_WITHOUT_TYPE(bind_traits) \
+// Expand: `[&] var_`.
+#define BOOST_CLOSURE_AUX_PP_BIND_TRAITS_VAR_WITHOUT_TYPE(bind_traits) \
     BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_BIND_TRAITS_INDEX_MAX_, \
             BOOST_CLOSURE_AUX_PP_BIND_TRAITS_INDEX_WITHOUT_TYPE_, bind_traits)
 
-// Could be empty (if no type was explicitly specified).
-#define BOOST_CLOSURE_AUX_PP_BIND_TRAITS_WITH_TYPE(bind_traits) \
+// Expand: `[(type_) [&] var_]` (EMPTY if no type_ specified).
+#define BOOST_CLOSURE_AUX_PP_BIND_TRAITS_VAR_WITH_TYPE(bind_traits) \
     BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_BIND_TRAITS_INDEX_MAX_, \
             BOOST_CLOSURE_AUX_PP_BIND_TRAITS_INDEX_WITH_TYPE_, bind_traits) \
             (/* expand EMPTY */)
 
-#define BOOST_CLOSURE_AUX_PP_BIND_TRAITS_HAVE_TYPE(bind_traits) \
+// Expand: 1 iff type_ specified, 0 otherwise.
+#define BOOST_CLOSURE_AUX_PP_BIND_TRAITS_VAR_HAS_TYPE(bind_traits) \
     BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- BOOST_CLOSURE_AUX_PP_BIND_TRAITS_WITH_TYPE(any_bind)))
+ BOOST_CLOSURE_AUX_PP_BIND_TRAITS_WITH_TYPE(bind_traits)))
 
-// Bind this (const or not).
+// Bind object this (const or not).
 
+// Expand: `[(type_)]` (EMPTY if no type_ specified).
 #define BOOST_CLOSURE_AUX_PP_BIND_TRAITS_THIS_TYPE(bind_this_type) \
     BOOST_PP_TUPLE_ELEM(1, 0, bind_this_type)(/* expand EMPTY */)
 
+// Expand: 1 iff type_ specified, 0 otherwise.
 #define BOOST_CLOSURE_AUX_PP_BIND_TRAITS_THIS_HAS_TYPE(bind_this_type) \
     BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
             BOOST_CLOSURE_AUX_PP_BIND_TRAITS_THIS_TYPE(bind_this_type)))

Deleted: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_bind.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_bind.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
+++ (empty file)
@@ -1,35 +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_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_BIND_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_BIND_HPP_
-
-#include "../params_unbind.hpp"
-#include "../params_bind.hpp"
-#include "../params_const_bind.hpp"
-#include <boost/preprocessor/list/append.hpp>
-
-// name_without_type: [&] name (name != `this`)
-// name_with_type: PP_EMPTY | type [&] name (name != `this`)
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_BIND(params, \
- name_without_type, name_with_type) \
- ( /* 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 `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_TYPE(params) \
- , /* bind names */ \
- BOOST_PP_LIST_APPEND(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params), \
- ( (name_without_type, name_with_type), BOOST_PP_NIL)) \
- , /* bind `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND_THIS_TYPE(params) \
- , /* error message (if any) */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ERROR(params) \
- )
-
-#endif // #include guard
-

Deleted: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_bind_this_type.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_bind_this_type.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
+++ (empty file)
@@ -1,35 +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_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_BIND_THIS_TYPE_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_BIND_THIS_TYPE_HPP_
-
-#include "../params_unbind.hpp"
-#include "../params_bind.hpp"
-#include "../params_const_bind.hpp"
-#include <boost/preprocessor/list/append.hpp>
-
-// this_type: PP_EMPTY | type
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_BIND_THIS_TYPE(params, \
- this_type) \
- ( /* 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 `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_TYPE(params) \
- , /* bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params) \
- , /* bind `this` */ \
- BOOST_PP_LIST_APPEND( \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND_THIS_TYPE(params), \
- ((this_type), BOOST_PP_NIL)) \
- , /* error message (if any) */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ERROR(params) \
- )
-
-#endif // #include guard
-

Deleted: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_const_bind.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_const_bind.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
+++ (empty file)
@@ -1,35 +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_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_CONST_BIND_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_CONST_BIND_HPP_
-
-#include "../params_unbind.hpp"
-#include "../params_bind.hpp"
-#include "../params_const_bind.hpp"
-#include <boost/preprocessor/list/append.hpp>
-
-// name_without_type: [&] name (name != `this`)
-// name_with_type: BOOST_PP_EMPTY | type [&] name (name != `this`)
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_CONST_BIND(params, \
- name_without_type, name_with_type) \
- ( /* unbind params and defaults */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(params) \
- , /* const-bind names */ \
- BOOST_PP_LIST_APPEND(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params),\
- ( (name_without_type, name_with_type), BOOST_PP_NIL))\
- , /* const-bind `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_TYPE(params) \
- , /* bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params) \
- , /* bind `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND_THIS_TYPE(params) \
- , /* error message (if any) */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ERROR(params) \
- )
-
-#endif // #include guard
-

Deleted: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_const_bind_this_type.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_const_bind_this_type.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
+++ (empty file)
@@ -1,34 +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_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_CONST_BIND_THIS_TYPE_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_CONST_BIND_THIS_TYPE_HPP_
-
-#include "../params_unbind.hpp"
-#include "../params_bind.hpp"
-#include "../params_const_bind.hpp"
-#include <boost/preprocessor/list/append.hpp>
-
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_CONST_BIND_THIS_TYPE( \
- params, this_type) \
- ( /* 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 `this` types */ \
- BOOST_PP_LIST_APPEND( \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_TYPE(params), \
- ((this_type), BOOST_PP_NIL)) \
- , /* bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params) \
- , /* bind `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND_THIS_TYPE(params) \
- , /* error message (if any) */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ERROR(params) \
- )
-
-#endif // #include guard
-

Deleted: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_unbind.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_unbind.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
+++ (empty file)
@@ -1,37 +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_LOCAL_AUX_PP_SIGN_PARSED_APPEND_UNBIND_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_APPEND_UNBIND_HPP_
-
-#include "../params_unbind.hpp"
-#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_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` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_TYPE(params) \
- , /* bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params) \
- , /* bind `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND_THIS_TYPE(params) \
- , /* error message (if any) */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ERROR(params) \
- )
-
-#endif // #include guard
-

Deleted: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_unbind_default.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/append_unbind_default.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
+++ (empty file)
@@ -1,64 +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_LOCAL_AUX_PP_SIGN_PARSED_APPEND_UNBIND_DEFAULT_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_APPEND_UNBIND_DEFAULT_HPP_
-
-#include "../params_unbind.hpp"
-#include "../params_bind.hpp"
-#include "../params_const_bind.hpp"
-#include <boost/preprocessor/facilities/empty.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 //
-
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_UNBIND_DEFAULT_( \
- 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) \
- , \
- ( /* 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 //
-
-// 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 */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_APPEND_UNBIND_DEFAULT_( \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(params), \
- default_value) /* append default to last added param */ \
- , /* const-bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params) \
- , /* const-bind `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_TYPE(params) \
- , /* bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params) \
- , /* bind `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND_THIS_TYPE(params) \
- , /* error message (if any) */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_ERROR(params) \
- )
-
-#endif // #include guard
-

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/index.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/index.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/index.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -4,16 +4,16 @@
 // 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_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_HPP_
+#ifndef BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_HPP_
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_HPP_
 
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_UNBIND 0
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_CONST_BIND 1
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_CONST_BIND_THIS_TYPE 2
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_BIND 3
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_BIND_THIS_TYPE 4
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_ERROR 5
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_INDEX_MAX 6
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_PARAMS 0
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_CONST_BINDS 1
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_CONST_BIND_THIS_TYPES 2
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_BINDS 3
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_BIND_THIS_TYPES 4
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_ERROR 5
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_MAX 6
 
 #endif // #include guard
 

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/nil.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/nil.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/nil.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -4,13 +4,13 @@
 // 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_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_NIL_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_NIL_HPP_
+#ifndef BOOST_LOCAL_AUX_PP_DECL_TRAITS_NIL_HPP_
+#define BOOST_LOCAL_AUX_PP_DECL_TRAITS_NIL_HPP_
 
 #include <boost/preprocessor/facilities/empty.hpp>
 
 // See "index_.hpp".
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_NIL \
+#define BOOST_LOCAL_AUX_PP_DECL_TRAITS_NIL \
     ( \
         /* unbound params: list of 2-tuples (classified_name, default) */ \
         BOOST_PP_NIL /* nil list */ \

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/set_error.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/set_error.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/set_error.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -4,25 +4,27 @@
 // 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_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_SET_ERROR_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_SET_ERROR_HPP_
+#ifndef BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SET_ERROR_HPP_
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SET_ERROR_HPP_
 
-#include "../params_unbind.hpp"
-#include "../params_bind.hpp"
-#include "../params_const_bind.hpp"
+#include <boost/closure/aux_/preprocessor/traits/decl_param.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_bind.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_const_bind.hpp>
 
-// error: `EMPTY` if no error, `ERROR_message_text EMPTY` if error.
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_SET_ERROR(params, error) \
+// PUBLIC //
+
+// error: `[ERROR_message_text] EMPTY`, no ERROR_message_text if no error.
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SET_ERROR(decl_traits, error) \
     ( /* unbind params and defaults */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_UNBIND(params) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS(decl_traits) \
     , /* const-bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND(params) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BINDS(decl_traits) \
     , /* const-bind `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_CONST_BIND_THIS_TYPE(params) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND_THIS_TYPES(decl_traits) \
     , /* bind names */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND(params) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BINDS(decl_traits) \
     , /* bind `this` types */ \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_BIND_THIS_TYPE(params) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND_THIS_TYPES(decl_traits) \
     , /* error message (if any) */ \
         error \
     )

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/validate.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/validate.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/validate.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -4,14 +4,16 @@
 // 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_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_VALIDATE_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_VALIDATE_HPP_
+#ifndef BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE_HPP_
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE_HPP_
 
-#include "validate_/this_count.hpp"
+#include <boost/closure/aux_/preprocessor/traits/decl_/validate_/this_count.hpp>
+
+// PUBLIC //
 
 // Validate params after they have been parsed.
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_VALIDATE(params) \
- BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_VALIDATE_THIS_COUNT(params)
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE(decl_traits) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE_THIS_COUNT(decl_traits)
 
 #endif // #include guard
 

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/validate_/this_count.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/validate_/this_count.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_/validate_/this_count.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -4,13 +4,13 @@
 // 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_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_VALIDATE_THIS_COUNT_HPP_
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_VALIDATE_THIS_COUNT_HPP_
+#ifndef BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE_THIS_COUNT_HPP_
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE_THIS_COUNT_HPP_
 
-#include "../set_error.hpp"
-#include "../../params_error.hpp"
-#include "../../params_const_bind.hpp"
-#include "../../params_bind.hpp"
+#include <boost/closure/aux_/preprocessor/traits/decl_/set_error.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_error.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_const_bind.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_bind.hpp>
 #include <boost/preprocessor/control/iif.hpp>
 #include <boost/preprocessor/facilities/empty.hpp>
 #include <boost/preprocessor/tuple/eat.hpp>
@@ -18,24 +18,25 @@
 
 // PRIVATE //
 
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_VALIDATE_THIS_COUNT_(params) \
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE_THIS_COUNT_(decl_traits) \
     BOOST_PP_IIF(BOOST_PP_BITAND( \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_CONST_BIND_THIS(params), \
- BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_BIND_THIS(params)), \
- BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_SET_ERROR \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_CONST_BIND_THIS( \
+ decl_traits), \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_BIND_THIS(decl_traits)), \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SET_ERROR \
     , \
- params BOOST_PP_TUPLE_EAT(2) \
- )(params, /* trailing `EMPTY` because error might not be present */ \
+ decl_traits BOOST_PP_TUPLE_EAT(2) \
+ )(decl_traits, /* trailing `EMPTY` because error might not be present */ \
             ERROR_cannot_bind_object_this_multiple_times BOOST_PP_EMPTY)
 
 // PUBLIC //
 
-#define BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_VALIDATE_THIS_COUNT(params) \
- BOOST_PP_IIF(BOOST_LOCAL_AUX_PP_SIGN_PARAMS_HAVE_ERROR(params), \
- params BOOST_PP_TUPLE_EAT(1) /* fwd existing error */ \
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE_THIS_COUNT(decl_traits) \
+ BOOST_PP_IIF(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_ERROR(decl_traits), \
+ decl_traits BOOST_PP_TUPLE_EAT(1) /* fwd existing error */ \
     , \
- BOOST_LOCAL_AUX_PP_SIGN_PARSED_PARAMS_VALIDATE_THIS_COUNT_ \
- )(params)
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE_THIS_COUNT_ \
+ )(decl_traits)
 
 #endif // #include guard
 

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_any_bind.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_any_bind.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_any_bind.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -14,7 +14,9 @@
 #include <boost/preprocessor/tuple/eat.hpp>
 #include <boost/preprocessor/list/append.hpp>
 
-// Expand to 1 iff `this` is bound (const or not).
+// PUBLIC //
+
+// Expand: 1 iff `this` is bound (const or not).
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_ANY_BIND_THIS(decl_traits) \
     /* can't use PP_BITOR/PP_OR because don't expand on MSVC */ \
     BOOST_PP_IIF(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_CONST_BIND_THIS( \
@@ -27,7 +29,7 @@
         0 \
     ))
 
-// Expand to 1 iff has one or more bound including `this` (const or not).
+// Expand: 1 iff has one or more bound including `this` (const or not).
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_ANY_BIND(decl_traits) \
     /* can't use PP_BITOR/PP_OR because don't expand on MSVC */ \
     BOOST_PP_IIF(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_CONST_BIND( \
@@ -45,14 +47,14 @@
         0 \
     ))))
 
-// Expand to list with all binds (const or not) but excluding `this`.
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ALL_BIND_WITHOUT_THIS(decl_traits) \
+// Expand: pp-list with all binds (const or not) but excluding `this`.
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ALL_BINDS_WITHOUT_THIS(decl_traits) \
     BOOST_PP_LIST_APPEND(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND( \
             decl_traits), BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND(decl_traits))
 
-// Expand to list with all binds (const or not) and including `this` if bound
+// Expand: pp-list with all binds (const or not) and including `this` if bound
 // (const or not).
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ALL_BIND(decl_traits) \
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ALL_BINDS(decl_traits) \
     BOOST_PP_LIST_APPEND(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ALL_BIND( \
             decl_traits), \
         BOOST_PP_IIF(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_ANY_BIND_THIS( \
@@ -63,9 +65,9 @@
         ) \
     )
 
-// Expand to list of all `this` types (const or not). There is at most 1 bind
+// Expand: pp-list of all `this` types (const or not). There is at most 1 bind
 // `this` type if no parsing error.
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ALL_BIND_THIS_TYPE(decl_traits) \
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ALL_BIND_THIS_TYPES(decl_traits) \
     BOOST_PP_LIST_APPEND( \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND_THIS_TYPE(decl_traits), \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND_THIS_TYPE(decl_traits))

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_bind.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_bind.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_bind.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -20,27 +20,33 @@
 
 // PUBLIC //
 
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND(decl_traits) \
+// Expand: pp-list of non-const binds.
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BINDS(decl_traits) \
     BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_MAX, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_BIND, decl_traits)
 
+// Expand: 1 iff at least 1 non-const bind, 0 otherwise.
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_BIND(decl_traits) \
     BOOST_PP_LIST_IS_CONS(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND(decl_traits))
 
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND_WITHOUT_TYPE(decl_traits) \
+// Expand: pp-list of non-const binds without explicit types.
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BINDS_WITHOUT_TYPE(decl_traits) \
     BOOST_PP_LIST_TRANSFORM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND_TYPED_, \
             BOOST_CLOSURE_AUX_PP_BIND_TRAITS_WITHOUT_TYPE, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND(params))
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND_WITH_TYPE(decl_traits) \
+
+// Expand: pp-list of non-const binds with explicit types.
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BINDS_WITH_TYPE(decl_traits) \
     BOOST_PP_LIST_TRANSFORM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND_TYPED_, \
             BOOST_CLOSURE_AUX_PP_BIND_TRAITS_WITH_TYPE, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND(decl_traits))
 
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND_THIS_TYPE(decl_traits) \
+// Expand: pp-list of types for bound this (size <= 1 only after validation).
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND_THIS_TYPES(decl_traits) \
     BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_MAX, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_BIND_THIS_TYPE, decl_traits)
 
+// Expand: 1 iff this was bound, 0 otherwise.
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_BIND_THIS(decl_traits) \
     BOOST_PP_LIST_IS_CONS(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_BIND_THIS_TYPE( \
             decl_traits))

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_const_bind.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_const_bind.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_const_bind.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -20,35 +20,41 @@
 
 // PUBLIC //
 
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND(decl_traits) \
+// Expand: pp-list of const-binds.
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BINDS(decl_traits) \
     BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_MAX, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_CONST_BIND, decl_traits)
 
+// Expand: 1 iff at least 1 const-bind, 0 otherwise.
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_CONST_BIND(decl_traits) \
     BOOST_PP_LIST_IS_CONS(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND( \
             decl_traits))
 
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND_WITHOUT_TYPE( \
+// Expand: pp-list of const-binds without explicit type.
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BINDS_WITHOUT_TYPE( \
         decl_traits) \
     BOOST_PP_LIST_TRANSFORM( \
             BOOST_CLOSURE_AUX_PP_DECL_TRAUTS_CONST_BIND_TYPED_, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ANY_BIND_WITHOUT_TYPE, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND(decl_traits))
         
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND_WITH_TYPE(decl_traits) \
+// Expand: pp-list of const-binds with explicit type.
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BINDS_WITH_TYPE(decl_traits) \
     BOOST_PP_LIST_TRANSFORM( \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND_TYPED_, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ANY_BIND_WITH_TYPE, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND(decl_traits))
 
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND_THIS_TYPE(decl_traits) \
+// Expand: pp-list of type for const-bind of this (size <= 1 after validation).
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND_THIS_TYPES(decl_traits) \
     BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_MAX, \
             BOOST_CLOSURE_AUX_PP_DECL_TRIATS_INDEX_CONST_BIND_THIS_TYPE, \
             decl_traits)
 
+// Expand: 1 iff this is const-bind, 0 otherwise.
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_CONST_BIND_THIS(params) \
     BOOST_PP_LIST_IS_CONS( \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND_THIS_TYPE(decl_traits))
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_CONST_BIND_THIS_TYPES(decl_traits))
 
 #endif // #include guard
 

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_error.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_error.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_error.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -14,14 +14,16 @@
 
 // PUBLIC //
 
-// Expand to `EMPTY` if no error, to `ERROR_message_text EMPTY` otherwise.
+// Expand: `[ERROR_message_text] EMPTY`, EMPTY iff no pp-parsing error.
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ERROR(decl_traits) \
     BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_MAX, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_ERROR, decl_traits)
 
+// Expand: `[ERROR_message_text]`, EMPTY iff no pp-parsing error.
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ERROR_MSG(decl_traits) \
     BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ERROR(decl_traits)(/* expand EMPTY */)
 
+// Expand: 1 iff pp-parsing error, 0 otherwise.
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_ERROR(decl_traits) \
     BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_ERROR_MSG(decl_traits)))

Copied: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_param.hpp (from r76000, /sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_params.hpp)
==============================================================================
--- /sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_params.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_param.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -4,8 +4,8 @@
 // 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_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_HPP_
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_HPP_
+#ifndef BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_HPP_
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_HPP_
 
 #include <boost/closure/aux_/preprocessor/traits/decl_/index.hpp>
 #include <boost/closure/detail/preprocessor/keyword/default.hpp>
@@ -50,30 +50,36 @@
 
 // PUBLIC //
 
-// Expand to param declaration: [auto | register] type name.
+// Single parameter.
+
+// Expand: `[auto | register] type_ name_` (parameter declaration).
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_DECL(param) \
     BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_INDEX_MAX_, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_INDEX_DECL_, param)
 
-// Expand to param default value (empty if none).
+// Expand: `[default_value_]`, EMPTY if no parameter default value.
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_DEFAULT(param) \
     BOOST_CLOSURE_DETAIL_PP_KEYWORD_DEFAULT_REMOVE_FRONT( \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_DEFAULT_(param))
 
-// Expand to 1 if param has default value, 0 otherwise.
+// Expand: 1 iff parameter has default value, 0 otherwise.
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_HAS_DEFAULT(param) \
     BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_DEFAULT_(param)))
 
-// Expand to pp-list of ALL unbind params.
+// All parameters.
+
+// Expand: pp-list of parameters (bound variables excluded).
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS(decl_traits) \
     BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_MAX, \
             BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_PARAMS, decl_traits)
 
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_PARAMS(decl_traits) \
+// Expand: 1 iff at least 1 parameter (bound variables excluded).
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_PARAM(decl_traits) \
     BOOST_PP_LIST_IS_CONS(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS(decl_traits))
 
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_COUNT_DEFAULTS(decl_traits) \
+// Expand: number of parameters with default values (0 if no default).
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_COUNT_DEFAULT_PARAMS(decl_traits) \
     BOOST_PP_IIF(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_PARAMS(decl_traits), \
         BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_COUNT_DEFAULTS_ \
     , \

Deleted: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_params.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_params.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
+++ (empty file)
@@ -1,84 +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_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_HPP_
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_HPP_
-
-#include <boost/closure/aux_/preprocessor/traits/decl_/index.hpp>
-#include <boost/closure/detail/preprocessor/keyword/default.hpp>
-#include <boost/preprocessor/tuple/elem.hpp>
-#include <boost/preprocessor/tuple/eat.hpp>
-#include <boost/preprocessor/arithmetic/inc.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/logical/compl.hpp>
-#include <boost/preprocessor/facilities/is_empty.hpp>
-#include <boost/preprocessor/list/adt.hpp> // For `IS_CONS`.
-#include <boost/preprocessor/list/fold_left.hpp>
-
-// PRIVATE //
-
-// Param 2-tuple `([auto | register] type name, default_value)`.
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_INDEX_DECL_ 0
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_INDEX_DEFAULT_ 1
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_INDEX_MAX_ 2
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_COUNT_DEFAULTS_OP_(s, \
- default_count, param) \
- BOOST_PP_IIF(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_HAS_DEFAULT( \
- param), \
- BOOST_PP_INC \
- , \
- default_count BOOST_PP_TUPLE_EAT(1) \
- )(default_count)
-
-// Precondition: unbinds is a pp-list which is not nil.
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_COUNT_DEFAULTS_(params) \
- BOOST_PP_LIST_FOLD_LEFT( \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_COUNT_DEFAULTS_OP_, \
- 0 /* start with defaults_count to 0 */, params)
-
-// Expand to `default ... EMPTY()` if default value, `EMPTY()` otherwise.
-// Leading default is kept because default value might not be alphanumeric
-// (so failing `CAT` for `IS_EMPTY` check).
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_DEFAULT_(param) \
- BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_INDEX_MAX_, \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_INDEX_DEFAULT_, param) \
- (/* expand EMPTY */)
-
-// PUBLIC //
-
-// Expand to param declaration: [auto | register] type name.
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_DECL(param) \
- BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_INDEX_MAX_, \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_INDEX_DECL_, param)
-
-// Expand to param default value (empty if none).
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_DEFAULT(param) \
- BOOST_CLOSURE_DETAIL_PP_KEYWORD_DEFAULT_REMOVE_FRONT( \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_DEFAULT_(param))
-
-// Expand to 1 if param has default value, 0 otherwise.
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_HAS_DEFAULT(param) \
- BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAM_DEFAULT_(param)))
-
-// Expand to pp-list of ALL unbind params.
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS(decl_traits) \
- BOOST_PP_TUPLE_ELEM(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_MAX, \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_INDEX_PARAMS, decl_traits)
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_PARAMS(decl_traits) \
- BOOST_PP_LIST_IS_CONS(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS(decl_traits))
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_COUNT_DEFAULTS(decl_traits) \
- BOOST_PP_IIF(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_HAVE_PARAMS(decl_traits), \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS_COUNT_DEFAULTS_ \
- , \
- 0 BOOST_PP_TUPLE_EAT(1) \
- )(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_PARAMS(decl_traits))
-
-#endif // #include guard
-

Modified: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_sign_/sign.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_sign_/sign.hpp (original)
+++ sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_sign_/sign.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
@@ -9,17 +9,103 @@
 
 #include <boost/closure/aux_/preprocessor/traits/decl_sign_/validate.hpp>
 #include <boost/closure/aux_/preprocessor/traits/decl_sign_/valid.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_sign_/any_bind_type.hpp>
 #include <boost/closure/aux_/preprocessor/traits/decl_/nil.hpp>
 #include <boost/closure/aux_/preprocessor/traits/decl_/set_error.hpp>
 #include <boost/closure/aux_/preprocessor/traits/decl_/validate.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_/append_unbind.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_/append_unbind_default.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_/append_const_bind.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_/append_const_bind_this_type.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_/append_bind.hpp>
+#include <boost/closure/aux_/preprocessor/traits/decl_/append_bind_this_type.hpp>
+#include <boost/closure/detail/keyword/const_bind.hpp>
+#include <boost/closure/detail/keyword/bind.hpp>
+#include <boost/detail/preprocessor/keyword/default.hpp>
+#include <boost/detail/preprocessor/keyword/this.hpp>
 #include <boost/preprocessor/control/iif.hpp>
 #include <boost/preprocessor/facilities/is_empty.hpp>
 
 // PRIVATE //
 
+// Parse const binds.
+
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_THIS_( \
+ decl_traits, sign) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_CONST_BIND_THIS_TYPE(decl_traits, \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_THIS_TYPE(sign))
+
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_VAR_( \
+ decl_traits, sign) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_CONST_BIND(decl_traits, \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITHOUT_TYPE(sign), \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITH_TYPE(sign))
+
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_( \
+ decl_traits, sign) \
+ /* check from back because non `this` bounds might have `&` in front */ \
+ BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_THIS_BACK( \
+ /* remove all leading symbols `[const] bind [(type)] ...` */ \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITHOUT_TYPE(sign)),\
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_THIS_ \
+ , \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_VAR_ \
+ )(decl_traits, sign)
+
+// Parse binds.
+
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_THIS_( \
+ decl_traits, sign) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_BIND_THIS_TYPE(decl_traits, \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_THIS_TYPE(sign))
+
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_VAR_( \
+ decl_traits, sign) \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_BIND(decl_traits, \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITHOUT_TYPE( \
+ sign), \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITH_TYPE(sign))
+
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_(decl_traits, sign) \
+ /* check from back because non `this` bounds might have `&` in front */ \
+ BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_THIS_BACK( \
+ /* remove all leading symbols `[const] bind [(type)] ...` */ \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITHOUT_TYPE( \
+ sign)), \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_THIS_ \
+ , \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_VAR_ \
+ )(decl_traits, sign)
+
+// Parse all elements.
+
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_(s, decl_traits, sign) \
+ BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_BIND_FRONT(sign), \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_ \
+ , BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_CONST_BIND_FRONT(sign), \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_ \
+ , BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_DEFAULT_FRONT(sign), \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_UNBIND_DEFAULT_ \
+ /* elem is `default ...` where leading default is kept because */ \
+ /* default value might not be alphanumeric (so it fails later CAT */ \
+ /* for checks), leading default will be removed later when getting */ \
+ /* the default value */ \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_UNBIND_DEFAULT \
+ , \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_UNBIND \
+ )))(decl_traits, sign)
+
+// Parse param seq after following precondition has been validated by caller.
+// Precondition: If seq contains a default param value `... (default ...) ...`,
+// the default value element is never 1st (it always has a previous elem) and
+// its previous element is a unbind param (no const-bind and no bind).
+#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_SEQ_(sign) \
+ BOOST_PP_SEQ_FOLD_LEFT(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_, \
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_NIL, sign)
+
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_YES_(sign, unused) \
     BOOST_CLOSURE_AUX_PP_DECL_TRAITS_VALIDATE( \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID(sign))
+ BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_SEQ_(sign))
 
 #define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_NO_(unused, error) \
     BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SET_ERROR( \

Deleted: sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_sign_/valid.hpp
==============================================================================
--- sandbox/closure/boost/closure/aux_/preprocessor/traits/decl_sign_/valid.hpp 2011-12-17 09:20:05 EST (Sat, 17 Dec 2011)
+++ (empty file)
@@ -1,104 +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_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_HPP_
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_HPP_
-
-#include <boost/closure/aux_/preprocessor/traits/decl_sign_/any_bind_type.hpp>
-#include <boost/closure/aux_/preprocessor/traits/decl_/nil.hpp>
-#include <boost/closure/aux_/preprocessor/traits/dec_/append_unbind.hpp>
-#include <boost/closure/aux_/preprocessor/traits/dec_/append_unbind_default.hpp>
-#include <boost/closure/aux_/preprocessor/traits/dec_/append_const_bind.hpp>
-#include <boost/closure/aux_/preprocessor/traits/dec_/append_const_bind_this_type.hpp>
-#include <boost/closure/aux_/preprocessor/traits/dec_/append_bind.hpp>
-#include <boost/closure/aux_/preprocessor/traits/dec_/append_bind_this_type.hpp>
-#include <boost/closure/detail/keyword/const_bind.hpp>
-#include <boost/closure/detail/keyword/bind.hpp>
-#include <boost/detail/preprocessor/keyword/default.hpp>
-#include <boost/detail/preprocessor/keyword/this.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-
-// PRIVATE //
-
-// Parse const binds.
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_THIS_( \
- decl_traits, sign) \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_CONST_BIND_THIS_TYPE(decl_traits, \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_THIS_TYPE(sign))
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_VAR_( \
- decl_traits, sign) \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_CONST_BIND(decl_traits, \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITHOUT_TYPE(sign), \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITH_TYPE(sign))
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_( \
- decl_traits, sign) \
- /* check from back because non `this` bounds might have `&` in front */ \
- BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_THIS_BACK( \
- /* remove all leading symbols `[const] bind [(type)] ...` */ \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITHOUT_TYPE(sign)),\
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_THIS_ \
- , \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_VAR_ \
- )(decl_traits, sign)
-
-// Parse binds.
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_THIS_( \
- decl_traits, sign) \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_BIND_THIS_TYPE(decl_traits, \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_THIS_TYPE(sign))
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_VAR_( \
- decl_traits, sign) \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_BIND(decl_traits, \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITHOUT_TYPE( \
- sign), \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITH_TYPE(sign))
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_(decl_traits, sign) \
- /* check from back because non `this` bounds might have `&` in front */ \
- BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_THIS_BACK( \
- /* remove all leading symbols `[const] bind [(type)] ...` */ \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_ANY_BIND_WITHOUT_TYPE( \
- sign)), \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_THIS_ \
- , \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_VAR_ \
- )(decl_traits, sign)
-
-// Parse all elements.
-
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_(s, decl_traits, sign) \
- BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_BIND_FRONT(sign), \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_BIND_ \
- , BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_CONST_BIND_FRONT(sign), \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_CONST_BIND_ \
- , BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_DEFAULT_FRONT(sign), \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_UNBIND_DEFAULT_ \
- /* elem is `default ...` where leading default is kept because */ \
- /* default value might not be alphanumeric (so it fails later CAT */ \
- /* for checks), leading default will be removed later when getting */ \
- /* the default value */ \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_UNBIND_DEFAULT \
- , \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_APPEND_UNBIND \
- )))(decl_traits, sign)
-
-// PUBLIC //
-
-// Parse param seq after following precondition has been validated by caller.
-// Precondition: If seq contains a default param value `... (default ...) ...`,
-// the default value element is never 1st (it always has a previous elem) and
-// its previous element is a unbind param (no const-bind and no bind).
-#define BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID(sign) \
- BOOST_PP_SEQ_FOLD_LEFT(BOOST_CLOSURE_AUX_PP_DECL_TRAITS_SIGN_VALID_, \
- BOOST_CLOSURE_AUX_PP_DECL_TRAITS_NIL, sign)
-
-#endif // #include guard
-


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