diff --git a/doc/headers.html b/doc/headers.html
index 0fa119b..4046071 100644
--- a/doc/headers.html
+++ b/doc/headers.html
@@ -147,6 +147,7 @@
enum_params.hpp
enum_params_with_a_default.hpp
enum_params_with_defaults.hpp
+ enum_shifted_binary_params.hpp
enum_shifted_params.hpp
enum_shifted.hpp
enum_trailing.hpp
diff --git a/doc/headers/repetition/esbp.html b/doc/headers/repetition/esbp.html
new file mode 100644
index 0000000..4d93edb
--- /dev/null
+++ b/doc/headers/repetition/esbp.html
@@ -0,0 +1,20 @@
+
+
+ repetition/enum_shifted_binary_params.hpp
+
+
+
+
+ The repetition/enum_shifted_binary_params.hpp header defines a construct that produces a comma-separated list of binary parameters.
+
+ Usage
+
+ #include <boost/preprocessor/repetition/enum_shifted_binary_params.hpp>
+
+ Contents
+
+
+
diff --git a/doc/ref.html b/doc/ref.html
index fe9cb09..66b40ec 100644
--- a/doc/ref.html
+++ b/doc/ref.html
@@ -62,6 +62,8 @@
ENUM_PARAMS_WITH_DEFAULTS*
ENUM_PARAMS_Z
ENUM_SHIFTED
+ ENUM_SHIFTED_BINARY_PARAMS
+ ENUM_SHIFTED_BINARY_PARAMS_Z
ENUM_SHIFTED_PARAMS
ENUM_SHIFTED_PARAMS_Z
ENUM_SHIFTED_z
diff --git a/doc/ref/esbp.html b/doc/ref/esbp.html
new file mode 100644
index 0000000..413b64a
--- /dev/null
+++ b/doc/ref/esbp.html
@@ -0,0 +1,54 @@
+
+
+ BOOST_PP_ENUM_BINARY_PARAMS
+
+
+
+
+ The BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS macro generates a comma-separated, shifted list of binary parameters.
+
+ Usage
+
+ BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS (count , p1 , p2 )
+
+ Arguments
+
+ count
+
+ The number of parameters to generate.
+ Valid values range from 0 to BOOST_PP_LIMIT_REPEAT .
+
+ p1
+
+ The text of the first part of the parameter.
+ BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS concatenates numbers ranging from 0 to count - 1
+ to generate parameters.
+
+ p2
+
+ The text of the first part of the parameter.
+ BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS concatenates numbers ranging from 0 to count - 1
+ to generate parameters.
+
+
+ Remarks
+
+ This macro expands to the comma-separated sequence:
+
+ p1 ## 1 p2 ## 1 , p1 ## 2 p2 ## 2 , ... p1 ## count - 1 p2 ## count - 1
+
+
+
+ To use the z parameter passed from other macros that use BOOST_PP_REPEAT , see BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z .
+
+ See Also
+
+ Requirements
+
+
+
diff --git a/doc/ref/esbpz.html b/doc/ref/esbpz.html
new file mode 100644
index 0000000..e9e53aa
--- /dev/null
+++ b/doc/ref/esbpz.html
@@ -0,0 +1,56 @@
+
+
+ BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z
+
+
+
+
+ The BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z macro generates a comma-separated list, shifted of binary parameters.
+ It reenters BOOST_PP_REPEAT with maximum efficiency.
+
+ Usage
+
+ BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z (z , count , p1 , p2 )
+
+ Arguments
+
+ z
+
+ The next available BOOST_PP_REPEAT dimension.
+
+ count
+
+ The number of parameters to generate.
+ Valid values range from 0 to BOOST_PP_LIMIT_REPEAT .
+
+ p1
+
+ The text of the first part of the parameter.
+ BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS concatenates numbers ranging from 0 to count - 1
+ to generate parameters.
+
+ p2
+
+ The text of the first part of the parameter.
+ BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS concatenates numbers ranging from 0 to count - 1
+ to generate parameters.
+
+
+ Remarks
+
+ This macro expands to the comma-separated sequence:
+
+ p1 ## 1 p2 ## 1 , p1 ## 2 p2 ## 2 , ... p1 ## count - 1 p2 ## count - 1
+
+
+ See Also
+
+ Requirements
+
+
+
diff --git a/include/boost/preprocessor/repetition.hpp b/include/boost/preprocessor/repetition.hpp
index 6e8bb3d..efcd60a 100644
--- a/include/boost/preprocessor/repetition.hpp
+++ b/include/boost/preprocessor/repetition.hpp
@@ -20,6 +20,7 @@
# include
# include
# include
+# include
# include
# include
# include
diff --git a/include/boost/preprocessor/repetition/enum_shifted_binary_params.hpp b/include/boost/preprocessor/repetition/enum_shifted_binary_params.hpp
new file mode 100644
index 0000000..f3d20fc
--- /dev/null
+++ b/include/boost/preprocessor/repetition/enum_shifted_binary_params.hpp
@@ -0,0 +1,51 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2005. *
+# * Distributed under the Boost Software License, Version 1.0. (See *
+# * accompanying file LICENSE_1_0.txt or copy at *
+# * http://www.boost.org/LICENSE_1_0.txt) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP
+#
+# include
+# include
+# include
+# include
+# include
+# include
+# include
+# include
+#
+# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# else
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2)
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp)
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, im)
+# else
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp))
+# endif
+#
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(p1, BOOST_PP_INC(n)) BOOST_PP_CAT(p2, BOOST_PP_INC(n))
+#
+# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# else
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2)
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# endif