|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r66065 - in sandbox/variadic_macro_data/libs/variadic_macro_data/doc: . html html/the_variadic_macro_data_library
From: eldiener_at_[hidden]
Date: 2010-10-17 22:32:51
Author: eldiener
Date: 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
New Revision: 66065
URL: http://svn.boost.org/trac/boost/changeset/66065
Log:
Updated documentation
Text files modified:
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/VMDComparison.qbk | 20 ++++++++++++++------
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_ELEM.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_SIZE.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_ARRAY.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_LIST.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_SEQ.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_TUPLE.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_ARRAY_TO_DATA.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_LIST_TO_DATA.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_SEQ_TO_DATA.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_ELEM.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_REM_CTOR.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_REVERSE.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_SIZE.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_DATA.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_LIST.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_SEQ.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/index.html | 2 +-
sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/the_variadic_macro_data_library/vmd_comparison.html | 33 +++++++++++++++++++++------------
19 files changed, 52 insertions(+), 35 deletions(-)
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/VMDComparison.qbk
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/VMDComparison.qbk (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/VMDComparison.qbk 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -39,7 +39,7 @@
[section:vmd_comp_example An example design]
-A typical situation is designing a macro for end-users which
+We will design a macro for end-users which
takes variadic data as its argument. Let's call this macro,
just as an example, ENDUSER_MACRO.
@@ -67,7 +67,7 @@
That is certainly acceptable, and without variadic macros, it is certainly
excellent to have the Boost PP functionality that allows us to design macros
-taking variadic macro and manipulate that data using the functionality of
+taking variadic data and manipulate that data using the functionality of
Boost PP.
With variadic macro support and VMD, but wishing to use our variadic data
@@ -85,14 +85,14 @@
I think this last way of passing variadic data is more
natural to an end-user than using a Boost PP sequence
-directly, but of course it depends on compiler variadic
+directly, but of course it depends on having compiler variadic
macro support.
One decision to be made is whether to support, for any given variadic data
macro functionality, a single macro or two macros with slightly different
names.
-Single macro design:
+* Single macro design:
In our example, if we wish to support a single macro, for compilers that
both support or do not support variadic macros, the code would be:
@@ -121,7 +121,7 @@
#define ENDUSER_MACRO(...) ENDUSER_DETAIL_MACRO(VMD_DATA_TO_PP_SEQ(__VA_ARGS__))
#endif
-Dual macro design:
+* Dual macro design:
Perhaps best is to provide two macros with slightly different names. Our solution
would then be:
@@ -135,7 +135,15 @@
variadic macros.
In an ideal world, once the new C++ standard is ratified, all compilers
-will support variadic macros.
+will support variadic macros, and then we can design a single macro
+which takes variadic macro data.
+
+Of course using variadic macro data works smoothly if there is only a single
+set of variadic data which a macro needs. If there is more than one set of
+variadic data, then we can consider using a combination of Boost PP
+variadic data functionality and variadic macro data. This is because variadic
+macro data can only be specified once for a variadic macro and must be the
+last parameter in the variadic macro.
[endsect]
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_ELEM.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_ELEM.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_ELEM.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_DATA_ELEM(n, ...)</pre></div>
<div class="refsect1">
-<a name="id924464"></a><h2>Description</h2>
+<a name="id936479"></a><h2>Description</h2>
<p>n = number of the variadic macro data argument. The number starts from 0 to the number of variadic macro data arguments - 1. The maximum number for n is 63.</p>
<p>... = variadic macro data.</p>
<p>returns = the particular macro data argument as specified by n. The argument returned can be any valid preprocessing token. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_SIZE.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_SIZE.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_SIZE.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_DATA_SIZE(...)</pre></div>
<div class="refsect1">
-<a name="id924425"></a><h2>Description</h2>
+<a name="id936440"></a><h2>Description</h2>
<p>... = variadic macro data.</p>
<p>returns = the number of comma-separated variadic macro data arguments being passed to it.</p>
<p>The value returned can be between 1 and 64. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_ARRAY.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_ARRAY.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_ARRAY.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_DATA_TO_PP_ARRAY(...)</pre></div>
<div class="refsect1">
-<a name="id924541"></a><h2>Description</h2>
+<a name="id936556"></a><h2>Description</h2>
<p>... = variadic macro data.</p>
<p>returns = a Boost PP library array data type.</p>
<p>You can use the result of this macro whenever you need to pass a Boost PP library array as data to a Boost PP library macro. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_LIST.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_LIST.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_LIST.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_DATA_TO_PP_LIST(...)</pre></div>
<div class="refsect1">
-<a name="id924579"></a><h2>Description</h2>
+<a name="id936594"></a><h2>Description</h2>
<p>... = variadic macro data.</p>
<p>returns = a Boost PP library list data type.</p>
<p>You can use the result of this macro whenever you need to pass a Boost PP library list as data to a Boost PP library macro. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_SEQ.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_SEQ.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_SEQ.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_DATA_TO_PP_SEQ(...)</pre></div>
<div class="refsect1">
-<a name="id924617"></a><h2>Description</h2>
+<a name="id936632"></a><h2>Description</h2>
<p>... = variadic macro data.</p>
<p>returns = a Boost PP library sequence data type.</p>
<p>You can use the result of this macro whenever you need to pass a Boost PP library sequence as data to a Boost PP library macro. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_TUPLE.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_TUPLE.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_DATA_TO_PP_TUPLE.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_DATA_TO_PP_TUPLE(...)</pre></div>
<div class="refsect1">
-<a name="id924502"></a><h2>Description</h2>
+<a name="id936517"></a><h2>Description</h2>
<p>... = variadic macro data.</p>
<p>returns = a Boost PP library tuple data type.</p>
<p>You can use the result of this macro whenever you need to pass a Boost PP library tuple as data to a Boost PP library macro. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_ARRAY_TO_DATA.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_ARRAY_TO_DATA.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_ARRAY_TO_DATA.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_ARRAY_TO_DATA(array)</pre></div>
<div class="refsect1">
-<a name="id924946"></a><h2>Description</h2>
+<a name="id936961"></a><h2>Description</h2>
<p>array = a Boost PP library array data type.</p>
<p>returns = variadic macro data whose arguments are the same as the elements of an array that is inputted.</p>
<p>The variadic macro data that is returned is in the form of of comma separated arguments. The variadic macro data can be passed to any macro which takes variadic macro data in the form of a final variadic macro data '...' macro parameter. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_LIST_TO_DATA.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_LIST_TO_DATA.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_LIST_TO_DATA.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_LIST_TO_DATA(list)</pre></div>
<div class="refsect1">
-<a name="id924985"></a><h2>Description</h2>
+<a name="id937000"></a><h2>Description</h2>
<p>list = a Boost PP library list data type.</p>
<p>returns = variadic macro data whose arguments are the same as the elements of a list that is inputted.</p>
<p>The variadic macro data that is returned is in the form of of comma separated arguments. The variadic macro data can be passed to any macro which takes variadic macro data in the form of a final variadic macro data '...' macro parameter. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_SEQ_TO_DATA.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_SEQ_TO_DATA.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_SEQ_TO_DATA.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_SEQ_TO_DATA(seq)</pre></div>
<div class="refsect1">
-<a name="id925023"></a><h2>Description</h2>
+<a name="id937038"></a><h2>Description</h2>
<p>seq = a Boost PP library sequence data type.</p>
<p>returns = variadic macro data whose arguments are the same as the elements of a sequence that is inputted.</p>
<p>The variadic macro data that is returned is in the form of of comma separated arguments. The variadic macro data can be passed to any macro which takes variadic macro data in the form of a final variadic macro data '...' macro parameter. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_ELEM.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_ELEM.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_ELEM.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_TUPLE_ELEM(n, tuple)</pre></div>
<div class="refsect1">
-<a name="id924694"></a><h2>Description</h2>
+<a name="id936709"></a><h2>Description</h2>
<p>n = number of the tuple element. The number starts from 0 to the size of the tuple - 1.</p>
<p>tuple = a Boost PP library tuple data type.</p>
<p>returns = the particular tuple element as specified by n.</p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_REM_CTOR.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_REM_CTOR.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_REM_CTOR.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_TUPLE_REM_CTOR(tuple)</pre></div>
<div class="refsect1">
-<a name="id924739"></a><h2>Description</h2>
+<a name="id936754"></a><h2>Description</h2>
<p>tuple = a Boost PP library tuple data type.</p>
<p>returns = a series of comma-separated tokens equivalent to removing the parentheses from a tuple.</p>
<p>This result is actually equivalent to the form of variadic macro data and can be used as an alternative to VMD_PP_TUPLE_TO_DATA to convert the tuple to variadic macro data.</p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_REVERSE.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_REVERSE.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_REVERSE.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_TUPLE_REVERSE(tuple)</pre></div>
<div class="refsect1">
-<a name="id924783"></a><h2>Description</h2>
+<a name="id936798"></a><h2>Description</h2>
<p>tuple = a Boost PP library tuple data type.</p>
<p>returns = a tuple whose elements are in reversed order from the original tuple.</p>
<p>In the Boost PP library there is no way to calculate the size of a tuple, so that the size must be known in order to be used by Boost PP library tuple macros. With variadic macros the size of a tuple can be calculated from the tuple itself.</p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_SIZE.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_SIZE.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_SIZE.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_TUPLE_SIZE(tuple)</pre></div>
<div class="refsect1">
-<a name="id924656"></a><h2>Description</h2>
+<a name="id936671"></a><h2>Description</h2>
<p>tuple = a Boost PP library tuple data type.</p>
<p>returns = the number of elements in the tuple, commonly referred to as the tuple size.</p>
<p>In the Boost PP library there is no way to calculate the size of a tuple, so that the size must be known in order to be used by Boost PP library tuple macros. With variadic macros the size of a tuple can be calculated from the tuple itself. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_DATA.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_DATA.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_DATA.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_TUPLE_TO_DATA(tuple)</pre></div>
<div class="refsect1">
-<a name="id924908"></a><h2>Description</h2>
+<a name="id936923"></a><h2>Description</h2>
<p>tuple = a Boost PP library tuple data type.</p>
<p>returns = variadic macro data whose arguments are the same as the elements of a tuple that is inputted.</p>
<p>The variadic macro data that is returned is in the form of of comma separated arguments. The variadic macro data can be passed to any macro which takes variadic macro data in the form of a final variadic macro data '...' macro parameter. </p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_LIST.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_LIST.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_LIST.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_TUPLE_TO_LIST(tuple)</pre></div>
<div class="refsect1">
-<a name="id924825"></a><h2>Description</h2>
+<a name="id936840"></a><h2>Description</h2>
<p>tuple = a Boost PP library tuple data type.</p>
<p>returns = a list whose elements are the same as the tuple that is inputted.</p>
<p>In the Boost PP library there is no way to calculate the size of a tuple, so that the size must be known in order to be used by Boost PP library tuple macros. With variadic macros the size of a tuple can be calculated from the tuple itself.</p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_SEQ.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_SEQ.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/VMD_PP_TUPLE_TO_SEQ.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -33,7 +33,7 @@
</span>VMD_PP_TUPLE_TO_SEQ(tuple)</pre></div>
<div class="refsect1">
-<a name="id924867"></a><h2>Description</h2>
+<a name="id936882"></a><h2>Description</h2>
<p>tuple = a Boost PP library tuple data type.</p>
<p>returns = a sequence whose elements are the same as the tuple that is inputted.</p>
<p>In the Boost PP library there is no way to calculate the size of a tuple, so that the size must be known in order to be used by Boost PP library tuple macros. With variadic macros the size of a tuple can be calculated from the tuple itself.</p>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/index.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/index.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/index.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -105,7 +105,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: October 17, 2010 at 04:29:22 GMT</small></p></td>
+<td align="left"><p><small>Last revised: October 18, 2010 at 02:31:25 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/the_variadic_macro_data_library/vmd_comparison.html
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/the_variadic_macro_data_library/vmd_comparison.html (original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/doc/html/the_variadic_macro_data_library/vmd_comparison.html 2010-10-17 22:32:46 EDT (Sun, 17 Oct 2010)
@@ -85,8 +85,8 @@
example design</a>
</h3></div></div></div>
<p>
- A typical situation is designing a macro for end-users which takes variadic
- data as its argument. Let's call this macro, just as an example, ENDUSER_MACRO.
+ We will design a macro for end-users which takes variadic data as its argument.
+ Let's call this macro, just as an example, ENDUSER_MACRO.
</p>
<p>
Without variadic macro support, but in keeping with Boost PP, the best way
@@ -115,7 +115,7 @@
<p>
That is certainly acceptable, and without variadic macros, it is certainly
excellent to have the Boost PP functionality that allows us to design macros
- taking variadic macro and manipulate that data using the functionality of
+ taking variadic data and manipulate that data using the functionality of
Boost PP.
</p>
<p>
@@ -136,17 +136,17 @@
</span></pre>
<p>
I think this last way of passing variadic data is more natural to an end-user
- than using a Boost PP sequence directly, but of course it depends on compiler
- variadic macro support.
+ than using a Boost PP sequence directly, but of course it depends on having
+ compiler variadic macro support.
</p>
<p>
One decision to be made is whether to support, for any given variadic data
macro functionality, a single macro or two macros with slightly different
names.
</p>
-<p>
- Single macro design:
- </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ Single macro design:
+ </li></ul></div>
<p>
In our example, if we wish to support a single macro, for compilers that
both support or do not support variadic macros, the code would be:
@@ -179,9 +179,9 @@
<span class="preprocessor">#define</span> <span class="identifier">ENDUSER_MACRO</span><span class="special">(...)</span> <span class="identifier">ENDUSER_DETAIL_MACRO</span><span class="special">(</span><span class="identifier">VMD_DATA_TO_PP_SEQ</span><span class="special">(</span><span class="identifier">__VA_ARGS__</span><span class="special">))</span>
<span class="preprocessor">#endif</span>
</pre>
-<p>
- Dual macro design:
- </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ Dual macro design:
+ </li></ul></div>
<p>
Perhaps best is to provide two macros with slightly different names. Our
solution would then be:
@@ -197,7 +197,16 @@
</p>
<p>
In an ideal world, once the new C++ standard is ratified, all compilers will
- support variadic macros.
+ support variadic macros, and then we can design a single macro which takes
+ variadic macro data.
+ </p>
+<p>
+ Of course using variadic macro data works smoothly if there is only a single
+ set of variadic data which a macro needs. If there is more than one set of
+ variadic data, then we can consider using a combination of Boost PP variadic
+ data functionality and variadic macro data. This is because variadic macro
+ data can only be specified once for a variadic macro and must be the last
+ parameter in the variadic macro.
</p>
</div>
</div>
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