dedicated counter

[SVN r30562]
This commit is contained in:
Paul Mensonides
2005-08-12 20:42:15 +00:00
parent e55d8e83be
commit 7c8bd6dec3
8 changed files with 393 additions and 0 deletions

View File

@ -189,6 +189,7 @@
<li class="ps"><a href="headers/seq/transform.html">transform.hpp</a></li> <li class="ps"><a href="headers/seq/transform.html">transform.hpp</a></li>
<li><a href="headers/slot.html">slot.hpp</a></li> <li><a href="headers/slot.html">slot.hpp</a></li>
<li>slot/</li> <li>slot/</li>
<li class="ps"><a href="headers/slot/counter.html">counter.hpp</a></li>
<li class="ps"><a href="headers/slot/slot.html">slot.hpp</a></li> <li class="ps"><a href="headers/slot/slot.html">slot.hpp</a></li>
<li><a href="headers/tuple.html">tuple.hpp</a></li> <li><a href="headers/tuple.html">tuple.hpp</a></li>
<li>tuple/</li> <li>tuple/</li>

View File

@ -0,0 +1,20 @@
<html>
<head>
<title>slot/counter.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>slot/counter.hpp</b> header defines macros used to generate numbers that are unique within a translation unit.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/slot/counter.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/counter.html">BOOST_PP_COUNTER</a></li>
<li><a href="../../ref/update_counter.html">BOOST_PP_UPDATE_COUNTER</a></li>
</ul>
</body>
</html>

View File

@ -45,6 +45,7 @@
<li><a href="ref/comma_if.html">COMMA_IF</a></li> <li><a href="ref/comma_if.html">COMMA_IF</a></li>
<li><a href="ref/compl.html">COMPL</a></li> <li><a href="ref/compl.html">COMPL</a></li>
<li><a href="ref/config_extended_line_info.html">CONFIG_EXTENDED_LINE_INFO</a></li> <li><a href="ref/config_extended_line_info.html">CONFIG_EXTENDED_LINE_INFO</a></li>
<li><a href="ref/counter.html">COUNTER</a></li>
<!-- D --> <!-- D -->
<li><a href="ref/dec.html">DEC</a></li> <li><a href="ref/dec.html">DEC</a></li>
<li><a href="ref/deduce_d.html">DEDUCE_D</a></li> <li><a href="ref/deduce_d.html">DEDUCE_D</a></li>
@ -261,6 +262,8 @@
<li><a href="ref/tuple_reverse.html">TUPLE_REVERSE</a></li> <li><a href="ref/tuple_reverse.html">TUPLE_REVERSE</a></li>
<li><a href="ref/tuple_to_list.html">TUPLE_TO_LIST</a></li> <li><a href="ref/tuple_to_list.html">TUPLE_TO_LIST</a></li>
<li><a href="ref/tuple_to_seq.html">TUPLE_TO_SEQ</a></li> <li><a href="ref/tuple_to_seq.html">TUPLE_TO_SEQ</a></li>
<!-- U -->
<li><a href="ref/update_counter.html">UPDATE_COUNTER</a></li>
<!-- V --> <!-- V -->
<li><a href="ref/value.html">VALUE</a></li> <li><a href="ref/value.html">VALUE</a></li>
<!-- W --> <!-- W -->

47
doc/ref/counter.html Normal file
View File

@ -0,0 +1,47 @@
<html>
<head>
<title>BOOST_PP_COUNTER</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_COUNTER</b> macro expands to the current counter value.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_COUNTER</b>
</div>
<h4>Remarks</h4>
<div>
This macro expands to an integer literal.
Its initial value is <code>0</code>.
Between usages of <b>BOOST_PP_UPDATE_COUNTER</b>, the value of <b>BOOST_PP_COUNTER</b> is constant.
</div>
<h4>See Also</h4>
<ul>
<li><a href="update_counter.html">BOOST_PP_UPDATE_COUNTER</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/slot/counter.html">&lt;boost/preprocessor/slot/counter.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/array/insert.html">boost/preprocessor/slot/counter.hpp</a>&gt;
<a href="counter.html">BOOST_PP_COUNTER</a> // 0
#include <a href="update_counter.html">BOOST_PP_UPDATE_COUNTER</a>()
<a href="counter.html">BOOST_PP_COUNTER</a> // 1
#include <a href="update_counter.html">BOOST_PP_UPDATE_COUNTER</a>()
<a href="counter.html">BOOST_PP_COUNTER</a> // 2
#include <a href="update_counter.html">BOOST_PP_UPDATE_COUNTER</a>()
<a href="counter.html">BOOST_PP_COUNTER</a> // 3
</pre></div>
</body>
</html>

View File

@ -0,0 +1,23 @@
<html>
<head>
<title>BOOST_PP_UPDATE_COUNTER</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_UPDATE_COUNTER</b> macro increments the current counter value.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>BOOST_PP_UPDATE_COUNTER()</b>
</div>
<h4>See Also</h4>
<ul>
<li><a href="counter.html">BOOST_PP_COUNTER</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/slot/counter.html">&lt;boost/preprocessor/slot/counter.hpp&gt;</a>
</div>
</body>
</html>

View File

@ -42,6 +42,7 @@
<br>BOOST_PP_COMMA_IF <br>BOOST_PP_COMMA_IF
<br>BOOST_PP_COMPL <br>BOOST_PP_COMPL
<br>BOOST_PP_CONFIG_EXTENDED_LINE_INFO <br>BOOST_PP_CONFIG_EXTENDED_LINE_INFO
<br>BOOST_PP_COUNTER
<!-- D --> <!-- D -->
<br>BOOST_PP_DEC <br>BOOST_PP_DEC
<br>BOOST_PP_DEDUCE_D <br>BOOST_PP_DEDUCE_D
@ -59,6 +60,8 @@
<br>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS <br>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS
<br>BOOST_PP_ENUM_PARAMS_Z <br>BOOST_PP_ENUM_PARAMS_Z
<br>BOOST_PP_ENUM_SHIFTED <br>BOOST_PP_ENUM_SHIFTED
<br>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS
<br>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z
<br>BOOST_PP_ENUM_SHIFTED_PARAMS <br>BOOST_PP_ENUM_SHIFTED_PARAMS
<br>BOOST_PP_ENUM_SHIFTED_PARAMS_Z <br>BOOST_PP_ENUM_SHIFTED_PARAMS_Z
<br>BOOST_PP_ENUM_SHIFTED_ <br>BOOST_PP_ENUM_SHIFTED_
@ -264,6 +267,8 @@
<br>BOOST_PP_TUPLE_REVERSE <br>BOOST_PP_TUPLE_REVERSE
<br>BOOST_PP_TUPLE_TO_LIST <br>BOOST_PP_TUPLE_TO_LIST
<br>BOOST_PP_TUPLE_TO_SEQ <br>BOOST_PP_TUPLE_TO_SEQ
<!-- U -->
<br>BOOST_PP_UPDATE_COUNTER
<!-- V --> <!-- V -->
<br>BOOST_PP_VALUE <br>BOOST_PP_VALUE
<!-- W --> <!-- W -->

View File

@ -0,0 +1,25 @@
# /* **************************************************************************
# * *
# * (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_SLOT_COUNTER_HPP
# define BOOST_PREPROCESSOR_SLOT_COUNTER_HPP
#
# include <boost/preprocessor/slot/detail/def.hpp>
#
# /* BOOST_PP_COUNTER */
#
# define BOOST_PP_COUNTER 0
#
# /* BOOST_PP_UPDATE_COUNTER */
#
# define BOOST_PP_UPDATE_COUNTER() <boost/preprocessor/slot/detail/counter.hpp>
#
# endif

View File

@ -0,0 +1,269 @@
# /* **************************************************************************
# * *
# * (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. */
#
# define BOOST_PP_VALUE BOOST_PP_COUNTER + 1
#
# include <boost/preprocessor/slot/detail/shared.hpp>
#
# undef BOOST_PP_COUNTER
#
# undef BOOST_PP_COUNTER_DIGIT_1
# undef BOOST_PP_COUNTER_DIGIT_2
# undef BOOST_PP_COUNTER_DIGIT_3
# undef BOOST_PP_COUNTER_DIGIT_4
# undef BOOST_PP_COUNTER_DIGIT_5
# undef BOOST_PP_COUNTER_DIGIT_6
# undef BOOST_PP_COUNTER_DIGIT_7
# undef BOOST_PP_COUNTER_DIGIT_8
# undef BOOST_PP_COUNTER_DIGIT_9
# undef BOOST_PP_COUNTER_DIGIT_10
#
# if BOOST_PP_SLOT_TEMP_10 == 0
# define BOOST_PP_COUNTER_DIGIT_10 0
# elif BOOST_PP_SLOT_TEMP_10 == 1
# define BOOST_PP_COUNTER_DIGIT_10 1
# elif BOOST_PP_SLOT_TEMP_10 == 2
# define BOOST_PP_COUNTER_DIGIT_10 2
# elif BOOST_PP_SLOT_TEMP_10 == 3
# define BOOST_PP_COUNTER_DIGIT_10 3
# elif BOOST_PP_SLOT_TEMP_10 == 4
# define BOOST_PP_COUNTER_DIGIT_10 4
# elif BOOST_PP_SLOT_TEMP_10 == 5
# define BOOST_PP_COUNTER_DIGIT_10 5
# elif BOOST_PP_SLOT_TEMP_10 == 6
# define BOOST_PP_COUNTER_DIGIT_10 6
# elif BOOST_PP_SLOT_TEMP_10 == 7
# define BOOST_PP_COUNTER_DIGIT_10 7
# elif BOOST_PP_SLOT_TEMP_10 == 8
# define BOOST_PP_COUNTER_DIGIT_10 8
# elif BOOST_PP_SLOT_TEMP_10 == 9
# define BOOST_PP_COUNTER_DIGIT_10 9
# endif
#
# if BOOST_PP_SLOT_TEMP_9 == 0
# define BOOST_PP_COUNTER_DIGIT_9 0
# elif BOOST_PP_SLOT_TEMP_9 == 1
# define BOOST_PP_COUNTER_DIGIT_9 1
# elif BOOST_PP_SLOT_TEMP_9 == 2
# define BOOST_PP_COUNTER_DIGIT_9 2
# elif BOOST_PP_SLOT_TEMP_9 == 3
# define BOOST_PP_COUNTER_DIGIT_9 3
# elif BOOST_PP_SLOT_TEMP_9 == 4
# define BOOST_PP_COUNTER_DIGIT_9 4
# elif BOOST_PP_SLOT_TEMP_9 == 5
# define BOOST_PP_COUNTER_DIGIT_9 5
# elif BOOST_PP_SLOT_TEMP_9 == 6
# define BOOST_PP_COUNTER_DIGIT_9 6
# elif BOOST_PP_SLOT_TEMP_9 == 7
# define BOOST_PP_COUNTER_DIGIT_9 7
# elif BOOST_PP_SLOT_TEMP_9 == 8
# define BOOST_PP_COUNTER_DIGIT_9 8
# elif BOOST_PP_SLOT_TEMP_9 == 9
# define BOOST_PP_COUNTER_DIGIT_9 9
# endif
#
# if BOOST_PP_SLOT_TEMP_8 == 0
# define BOOST_PP_COUNTER_DIGIT_8 0
# elif BOOST_PP_SLOT_TEMP_8 == 1
# define BOOST_PP_COUNTER_DIGIT_8 1
# elif BOOST_PP_SLOT_TEMP_8 == 2
# define BOOST_PP_COUNTER_DIGIT_8 2
# elif BOOST_PP_SLOT_TEMP_8 == 3
# define BOOST_PP_COUNTER_DIGIT_8 3
# elif BOOST_PP_SLOT_TEMP_8 == 4
# define BOOST_PP_COUNTER_DIGIT_8 4
# elif BOOST_PP_SLOT_TEMP_8 == 5
# define BOOST_PP_COUNTER_DIGIT_8 5
# elif BOOST_PP_SLOT_TEMP_8 == 6
# define BOOST_PP_COUNTER_DIGIT_8 6
# elif BOOST_PP_SLOT_TEMP_8 == 7
# define BOOST_PP_COUNTER_DIGIT_8 7
# elif BOOST_PP_SLOT_TEMP_8 == 8
# define BOOST_PP_COUNTER_DIGIT_8 8
# elif BOOST_PP_SLOT_TEMP_8 == 9
# define BOOST_PP_COUNTER_DIGIT_8 9
# endif
#
# if BOOST_PP_SLOT_TEMP_7 == 0
# define BOOST_PP_COUNTER_DIGIT_7 0
# elif BOOST_PP_SLOT_TEMP_7 == 1
# define BOOST_PP_COUNTER_DIGIT_7 1
# elif BOOST_PP_SLOT_TEMP_7 == 2
# define BOOST_PP_COUNTER_DIGIT_7 2
# elif BOOST_PP_SLOT_TEMP_7 == 3
# define BOOST_PP_COUNTER_DIGIT_7 3
# elif BOOST_PP_SLOT_TEMP_7 == 4
# define BOOST_PP_COUNTER_DIGIT_7 4
# elif BOOST_PP_SLOT_TEMP_7 == 5
# define BOOST_PP_COUNTER_DIGIT_7 5
# elif BOOST_PP_SLOT_TEMP_7 == 6
# define BOOST_PP_COUNTER_DIGIT_7 6
# elif BOOST_PP_SLOT_TEMP_7 == 7
# define BOOST_PP_COUNTER_DIGIT_7 7
# elif BOOST_PP_SLOT_TEMP_7 == 8
# define BOOST_PP_COUNTER_DIGIT_7 8
# elif BOOST_PP_SLOT_TEMP_7 == 9
# define BOOST_PP_COUNTER_DIGIT_7 9
# endif
#
# if BOOST_PP_SLOT_TEMP_6 == 0
# define BOOST_PP_COUNTER_DIGIT_6 0
# elif BOOST_PP_SLOT_TEMP_6 == 1
# define BOOST_PP_COUNTER_DIGIT_6 1
# elif BOOST_PP_SLOT_TEMP_6 == 2
# define BOOST_PP_COUNTER_DIGIT_6 2
# elif BOOST_PP_SLOT_TEMP_6 == 3
# define BOOST_PP_COUNTER_DIGIT_6 3
# elif BOOST_PP_SLOT_TEMP_6 == 4
# define BOOST_PP_COUNTER_DIGIT_6 4
# elif BOOST_PP_SLOT_TEMP_6 == 5
# define BOOST_PP_COUNTER_DIGIT_6 5
# elif BOOST_PP_SLOT_TEMP_6 == 6
# define BOOST_PP_COUNTER_DIGIT_6 6
# elif BOOST_PP_SLOT_TEMP_6 == 7
# define BOOST_PP_COUNTER_DIGIT_6 7
# elif BOOST_PP_SLOT_TEMP_6 == 8
# define BOOST_PP_COUNTER_DIGIT_6 8
# elif BOOST_PP_SLOT_TEMP_6 == 9
# define BOOST_PP_COUNTER_DIGIT_6 9
# endif
#
# if BOOST_PP_SLOT_TEMP_5 == 0
# define BOOST_PP_COUNTER_DIGIT_5 0
# elif BOOST_PP_SLOT_TEMP_5 == 1
# define BOOST_PP_COUNTER_DIGIT_5 1
# elif BOOST_PP_SLOT_TEMP_5 == 2
# define BOOST_PP_COUNTER_DIGIT_5 2
# elif BOOST_PP_SLOT_TEMP_5 == 3
# define BOOST_PP_COUNTER_DIGIT_5 3
# elif BOOST_PP_SLOT_TEMP_5 == 4
# define BOOST_PP_COUNTER_DIGIT_5 4
# elif BOOST_PP_SLOT_TEMP_5 == 5
# define BOOST_PP_COUNTER_DIGIT_5 5
# elif BOOST_PP_SLOT_TEMP_5 == 6
# define BOOST_PP_COUNTER_DIGIT_5 6
# elif BOOST_PP_SLOT_TEMP_5 == 7
# define BOOST_PP_COUNTER_DIGIT_5 7
# elif BOOST_PP_SLOT_TEMP_5 == 8
# define BOOST_PP_COUNTER_DIGIT_5 8
# elif BOOST_PP_SLOT_TEMP_5 == 9
# define BOOST_PP_COUNTER_DIGIT_5 9
# endif
#
# if BOOST_PP_SLOT_TEMP_4 == 0
# define BOOST_PP_COUNTER_DIGIT_4 0
# elif BOOST_PP_SLOT_TEMP_4 == 1
# define BOOST_PP_COUNTER_DIGIT_4 1
# elif BOOST_PP_SLOT_TEMP_4 == 2
# define BOOST_PP_COUNTER_DIGIT_4 2
# elif BOOST_PP_SLOT_TEMP_4 == 3
# define BOOST_PP_COUNTER_DIGIT_4 3
# elif BOOST_PP_SLOT_TEMP_4 == 4
# define BOOST_PP_COUNTER_DIGIT_4 4
# elif BOOST_PP_SLOT_TEMP_4 == 5
# define BOOST_PP_COUNTER_DIGIT_4 5
# elif BOOST_PP_SLOT_TEMP_4 == 6
# define BOOST_PP_COUNTER_DIGIT_4 6
# elif BOOST_PP_SLOT_TEMP_4 == 7
# define BOOST_PP_COUNTER_DIGIT_4 7
# elif BOOST_PP_SLOT_TEMP_4 == 8
# define BOOST_PP_COUNTER_DIGIT_4 8
# elif BOOST_PP_SLOT_TEMP_4 == 9
# define BOOST_PP_COUNTER_DIGIT_4 9
# endif
#
# if BOOST_PP_SLOT_TEMP_3 == 0
# define BOOST_PP_COUNTER_DIGIT_3 0
# elif BOOST_PP_SLOT_TEMP_3 == 1
# define BOOST_PP_COUNTER_DIGIT_3 1
# elif BOOST_PP_SLOT_TEMP_3 == 2
# define BOOST_PP_COUNTER_DIGIT_3 2
# elif BOOST_PP_SLOT_TEMP_3 == 3
# define BOOST_PP_COUNTER_DIGIT_3 3
# elif BOOST_PP_SLOT_TEMP_3 == 4
# define BOOST_PP_COUNTER_DIGIT_3 4
# elif BOOST_PP_SLOT_TEMP_3 == 5
# define BOOST_PP_COUNTER_DIGIT_3 5
# elif BOOST_PP_SLOT_TEMP_3 == 6
# define BOOST_PP_COUNTER_DIGIT_3 6
# elif BOOST_PP_SLOT_TEMP_3 == 7
# define BOOST_PP_COUNTER_DIGIT_3 7
# elif BOOST_PP_SLOT_TEMP_3 == 8
# define BOOST_PP_COUNTER_DIGIT_3 8
# elif BOOST_PP_SLOT_TEMP_3 == 9
# define BOOST_PP_COUNTER_DIGIT_3 9
# endif
#
# if BOOST_PP_SLOT_TEMP_2 == 0
# define BOOST_PP_COUNTER_DIGIT_2 0
# elif BOOST_PP_SLOT_TEMP_2 == 1
# define BOOST_PP_COUNTER_DIGIT_2 1
# elif BOOST_PP_SLOT_TEMP_2 == 2
# define BOOST_PP_COUNTER_DIGIT_2 2
# elif BOOST_PP_SLOT_TEMP_2 == 3
# define BOOST_PP_COUNTER_DIGIT_2 3
# elif BOOST_PP_SLOT_TEMP_2 == 4
# define BOOST_PP_COUNTER_DIGIT_2 4
# elif BOOST_PP_SLOT_TEMP_2 == 5
# define BOOST_PP_COUNTER_DIGIT_2 5
# elif BOOST_PP_SLOT_TEMP_2 == 6
# define BOOST_PP_COUNTER_DIGIT_2 6
# elif BOOST_PP_SLOT_TEMP_2 == 7
# define BOOST_PP_COUNTER_DIGIT_2 7
# elif BOOST_PP_SLOT_TEMP_2 == 8
# define BOOST_PP_COUNTER_DIGIT_2 8
# elif BOOST_PP_SLOT_TEMP_2 == 9
# define BOOST_PP_COUNTER_DIGIT_2 9
# endif
#
# if BOOST_PP_SLOT_TEMP_1 == 0
# define BOOST_PP_COUNTER_DIGIT_1 0
# elif BOOST_PP_SLOT_TEMP_1 == 1
# define BOOST_PP_COUNTER_DIGIT_1 1
# elif BOOST_PP_SLOT_TEMP_1 == 2
# define BOOST_PP_COUNTER_DIGIT_1 2
# elif BOOST_PP_SLOT_TEMP_1 == 3
# define BOOST_PP_COUNTER_DIGIT_1 3
# elif BOOST_PP_SLOT_TEMP_1 == 4
# define BOOST_PP_COUNTER_DIGIT_1 4
# elif BOOST_PP_SLOT_TEMP_1 == 5
# define BOOST_PP_COUNTER_DIGIT_1 5
# elif BOOST_PP_SLOT_TEMP_1 == 6
# define BOOST_PP_COUNTER_DIGIT_1 6
# elif BOOST_PP_SLOT_TEMP_1 == 7
# define BOOST_PP_COUNTER_DIGIT_1 7
# elif BOOST_PP_SLOT_TEMP_1 == 8
# define BOOST_PP_COUNTER_DIGIT_1 8
# elif BOOST_PP_SLOT_TEMP_1 == 9
# define BOOST_PP_COUNTER_DIGIT_1 9
# endif
#
# if BOOST_PP_COUNTER_DIGIT_10
# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_10(BOOST_PP_COUNTER_DIGIT_10, BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
# elif BOOST_PP_COUNTER_DIGIT_9
# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_9(BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
# elif BOOST_PP_COUNTER_DIGIT_8
# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_8(BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
# elif BOOST_PP_COUNTER_DIGIT_7
# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_7(BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
# elif BOOST_PP_COUNTER_DIGIT_6
# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_6(BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
# elif BOOST_PP_COUNTER_DIGIT_5
# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_5(BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
# elif BOOST_PP_COUNTER_DIGIT_4
# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_4(BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
# elif BOOST_PP_COUNTER_DIGIT_3
# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_3(BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
# elif BOOST_PP_COUNTER_DIGIT_2
# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_2(BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
# else
# define BOOST_PP_COUNTER BOOST_PP_COUNTER_DIGIT_1
# endif