$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r77406 - trunk/boost
From: lorcaminiti_at_[hidden]
Date: 2012-03-19 13:09:36
Author: lcaminiti
Date: 2012-03-19 13:09:34 EDT (Mon, 19 Mar 2012)
New Revision: 77406
URL: http://svn.boost.org/trac/boost/changeset/77406
Log:
Added _ID macro to LocalFunction and corrected code doc typo in ScopeExit.
Text files modified: 
   trunk/boost/local_function.hpp |    80 ++++++++++++++++++++++++++++------------
   trunk/boost/scope_exit.hpp     |    49 +++++++++++++++++-------                
   2 files changed, 91 insertions(+), 38 deletions(-)
Modified: trunk/boost/local_function.hpp
==============================================================================
--- trunk/boost/local_function.hpp	(original)
+++ trunk/boost/local_function.hpp	2012-03-19 13:09:34 EDT (Mon, 19 Mar 2012)
@@ -21,35 +21,28 @@
 // PUBLIC //
 
 #ifdef BOOST_NO_VARIADIC_MACROS
+#   define BOOST_LOCAL_FUNCTION_ID(id, within_template, declarations) \
+        BOOST_LOCAL_FUNCTION_AUX_DECL(id, within_template, \
+                BOOST_LOCAL_FUNCTION_AUX_PP_DECL_TRAITS( \
+                        BOOST_LOCAL_FUNCTION_DETAIL_PP_VOID_LIST( \
+                                declarations)))
 #   define BOOST_LOCAL_FUNCTION(declarations) \
-        BOOST_LOCAL_FUNCTION_AUX_DECL( \
-              BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER \
-            , 0 /* not within template */ \
-            , BOOST_LOCAL_FUNCTION_AUX_PP_DECL_TRAITS( \
-                    BOOST_LOCAL_FUNCTION_DETAIL_PP_VOID_LIST(declarations)) \
-        )
+        BOOST_LOCAL_FUNCTION_ID(BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER, \
+                0, declarations)
 #   define BOOST_LOCAL_FUNCTION_TPL(declarations) \
-        BOOST_LOCAL_FUNCTION_AUX_DECL( \
-              BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER \
-            , 1 /* within template */ \
-            , BOOST_LOCAL_FUNCTION_AUX_PP_DECL_TRAITS( \
-                    BOOST_LOCAL_FUNCTION_DETAIL_PP_VOID_LIST(declarations)) \
-        )
+        BOOST_LOCAL_FUNCTION_ID(BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER, \
+                1, declarations)
 #else // VARIADIC
+#   define BOOST_LOCAL_FUNCTION_ID(id, within_template, ...) \
+        BOOST_LOCAL_FUNCTION_AUX_DECL(id, within_template, \
+                BOOST_LOCAL_FUNCTION_AUX_PP_DECL_TRAITS( \
+                        BOOST_LOCAL_FUNCTION_DETAIL_PP_VOID_LIST(__VA_ARGS__)))
 #   define BOOST_LOCAL_FUNCTION(...) \
-        BOOST_LOCAL_FUNCTION_AUX_DECL( \
-              BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER \
-            , 0 /* not within template */ \
-            , BOOST_LOCAL_FUNCTION_AUX_PP_DECL_TRAITS( \
-                    BOOST_LOCAL_FUNCTION_DETAIL_PP_VOID_LIST(__VA_ARGS__)) \
-        )
+        BOOST_LOCAL_FUNCTION_ID( \
+                BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER, 0, __VA_ARGS__)
 #   define BOOST_LOCAL_FUNCTION_TPL(...) \
-        BOOST_LOCAL_FUNCTION_AUX_DECL( \
-              BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER \
-            , 1 /* within template */ \
-            , BOOST_LOCAL_FUNCTION_AUX_PP_DECL_TRAITS( \
-                    BOOST_LOCAL_FUNCTION_DETAIL_PP_VOID_LIST(__VA_ARGS__)) \
-        )
+        BOOST_LOCAL_FUNCTION_ID( \
+                BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER, 1, __VA_ARGS__)
 #endif // VARIADIC
 
 #define BOOST_LOCAL_FUNCTION_NAME(qualified_function_name) \
@@ -196,6 +189,45 @@
 #define BOOST_LOCAL_FUNCTION_TPL(declarations)
 
 /**
+@brief This macro allows to expand multiple local function macros on the same
+line.
+
+This macro is equivalent to @RefMacro{BOOST_LOCAL_FUNCTION} but it can be
+expanded multiple times on the same line if different identifiers <c>id</c> are
+provided for each expansion (see @RefMacro{BOOST_LOCAL_FUNCTION} for more
+detail).
+
+@Params
+@Param{id,
+    A unique identifier token which can be catted by the preprocessor (for
+    example <c>__LINE__</c> or <c>local_function_number_1_on_line_123</c>).
+}
+@Param{within_template,
+    Specify <c>1</c> when this macro is used in a type-dependant context\,
+    <c>0</c> otherwise (this is equivalent to using
+    @RefMacro{BOOST_LOCAL_FUNCTION_TPL} on separate lines).
+}
+@Param{declarations,
+    Same as the <c>declarations</c> parameter of the
+    @RefMacro{BOOST_LOCAL_FUNCTION} macro.
+}
+@EndParams
+
+@Note This macro can be useful when the local function macros are expanded
+within user-defined macros (because macros all expand on the same line).
+On some compilers (e.g., MSVC which supports the non standard
+<c>__COUNTER__</c> macro) it might not be necessary to use this macro but
+the use of this macro when expanding multiple local function macros on the same
+line is always necessary to ensure portability (this is because this library
+can only portably use <c>__LINE__</c> to internally generate unique
+identifiers).
+
+@See @RefMacro{BOOST_SCOPE_EXIT_END_ID}, @RefMacro{BOOST_SCOPE_EXIT_ALL_ID},
+    @RefMacro{BOOST_SCOPE_EXIT}, @RefMacro{BOOST_SCOPE_EXIT_TPL}.
+*/
+#define BOOST_LOCAL_FUNCTION_ID(id, within_template, declarations)
+
+/**
 @brief This macro is used to end a local function declaration specifying its
 name.
 
Modified: trunk/boost/scope_exit.hpp
==============================================================================
--- trunk/boost/scope_exit.hpp	(original)
+++ trunk/boost/scope_exit.hpp	2012-03-19 13:09:34 EDT (Mon, 19 Mar 2012)
@@ -794,7 +794,7 @@
 #define BOOST_SCOPE_EXIT_TPL(capture_list)
 
 /**
-_at_brief This macro allows to expand multiple scope-exits on the same line.
+@brief This macro allows to expand multiple scope exit macros on the same line.
 
 This macro is equivalent to @RefMacro{BOOST_SCOPE_EXIT} but it can be expanded
 multiple times on the same line if different identifiers <c>id</c> are provided
@@ -806,16 +806,23 @@
     example <c>__LINE__</c> or <c>scope_exit_number_1_on_line_123</c>).
 }
 @Param{within_template,
-    If this macro is used in a type-dependant context on GCC then <c>1</c>
-    (equivalently to @RefMacro{BOOST_SCOPE_EXIT_TPL}), <c>0</c> otherwise.
+    Specify <c>1</c> when this macro is used in a type-dependant context
+    on GCC\, <c>1</c> otherwise (this is equivalent to using
+    @RefMacro{BOOST_SCOPE_EXIT_TPL} on separate lines).
 }
 @Param{capture_list,
     Same as the <c>capture_list</c> parameter of the
-    @RefMacro{BOOST_SCOPE_EXIT} macro: <c>void</c>\, or a comma separated
-    list\, or a preprocessor sequence (if no variadic macros) of variables in
-    scope to capture.
+    @RefMacro{BOOST_SCOPE_EXIT} macro.
 }
-_at_endParams
+@EndParams
+
+@Note This macro can be useful when the scope exit macros are expanded
+within user-defined macros (because macros all expand on the same line).
+On some compilers (e.g., MSVC which supports the non standard
+<c>__COUNTER__</c> macro) it might not be necessary to use this macro but
+the use of this macro is always necessary to ensure portability when expanding
+multiple scope exit macros on the same line (because this library can only
+portably use <c>__LINE__</c> to internally generate unique identifiers).
 
 @See @RefMacro{BOOST_SCOPE_EXIT_END_ID}, @RefMacro{BOOST_SCOPE_EXIT_ALL_ID},
     @RefMacro{BOOST_SCOPE_EXIT}, @RefMacro{BOOST_SCOPE_EXIT_TPL}.
@@ -877,7 +884,7 @@
 #define BOOST_SCOPE_EXIT_ALL(capture_list)
 
 /**
-_at_brief This macro allows to expand multiple scope-exits on the same line.
+@brief This macro allows to expand multiple scope exit macros on the same line.
 
 This macro is equivalent to @RefMacro{BOOST_SCOPE_EXIT_ALL} but it can be
 expanded multiple times on the same line if different identifiers <c>id</c> are
@@ -891,11 +898,17 @@
 }
 @Param{capture_list,
     Same as the <c>capture_list</c> parameter of the
-    @RefMacro{BOOST_SCOPE_EXIT} macro: <c>void</c>\, or a comma separated
-    list\, or a preprocessor sequence (if no variadic macros) of variables in
-    scope to capture.
+    @RefMacro{BOOST_SCOPE_EXIT} macro.
 }
-_at_endParams
+@EndParams
+
+@Note This macro can be useful when the scope exit macros are expanded
+within user-defined macros (because macros all expand on the same line).
+On some compilers (e.g., MSVC which supports the non standard
+<c>__COUNTER__</c> macro) it might not be necessary to use this macro but
+the use of this macro is always necessary to ensure portability when expanding
+multiple scope exit macros on the same line (because this library can only
+portably use <c>__LINE__</c> to internally generate unique identifiers).
 
 @See @RefMacro{BOOST_SCOPE_EXIT_ID}, @RefMacro{BOOST_SCOPE_EXIT_ALL}.
 */
@@ -933,7 +946,7 @@
 #define BOOST_SCOPE_EXIT_END
 
 /**
-_at_brief This macro allows to expand multiple scope-exits on the same line.
+@brief This macro allows to expand multiple scope exit macros on the same line.
 
 This macro is equivalent to @RefMacro{BOOST_SCOPE_EXIT_END} but it can be
 expanded multiple times on the same line if different identifiers <c>id</c> are
@@ -945,7 +958,15 @@
     A unique identifier token which can be catted by the preprocessor (for
     example <c>__LINE__</c> or <c>scope_exit_number_1_on_line_123</c>).
 }
-_at_endParams
+@EndParams
+
+@Note This macro can be useful when the scope exit macros are expanded
+within user-defined macros (because macros all expand on the same line).
+On some compilers (e.g., MSVC which supports the non standard
+<c>__COUNTER__</c> macro) it might not be necessary to use this macro but
+the use of this macro is always necessary to ensure portability when expanding
+multiple scope exit macros on the same line (because this library can only
+portably use <c>__LINE__</c> to internally generate unique identifiers).
 
 @See @RefMacro{BOOST_SCOPE_EXIT_ID}, @RefMacro{BOOST_SCOPE_EXIT_END}.
 */