Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / vmd / doc / vmd_reference.xml
index 2630e42..b62e35e 100644 (file)
 <macro name="BOOST_VMD_IS_ARRAY_D" kind="functionlike"><macro-parameter name="d"/><macro-parameter name="sequence"/><purpose>Determines if a sequence is a Boost PP array. Re-entrant version. </purpose><description><para>The macro checks that the sequence is a Boost PP array. It returns 1 if it is an array, else if returns 0.</para><para>d = The next available BOOST_PP_WHILE iteration. sequence = a possible Boost PP array.</para><para>returns = 1 if it is an array, else returns 0.</para><para>The macro will generate a preprocessing error if the input is in the form of an array but its first tuple element, instead of being a number, is a preprocessor token which VMD cannot parse, as in the example '(&amp;2,(0,1))' which is a valid tuple but an invalid array. </para></description></macro>
 </header>
 <header name="boost/vmd/is_empty.hpp">
-<macro name="BOOST_VMD_IS_EMPTY" kind="functionlike"><macro-parameter name="..."/><purpose>Tests whether its input is empty or not. </purpose><description><para>The macro checks to see if the input is empty or not. It returns 1 if the input is empty, else returns 0.</para><para>The macro is a variadic macro taking any input. For the VC++8 compiler (VS2005) the macro takes a single parameter of input to check.</para><para>The macro is not perfect, and can not be so. The problem area is if the input to be checked is a function-like macro name, in which case either a compiler error can result or a false result can occur.</para><para>This macro is a replacement, using variadic macro support, for the undocumented macro BOOST_PP_IS_EMPTY in the Boost PP library. The code is taken from a posting by Paul Mensonides of a variadic version for BOOST_PP_IS_EMPTY, and changed in order to also support VC++.</para><para>.... = variadic input, for VC++8 this must be a single parameter</para><para>returns = 1 if the input is empty, 0 if it is not</para><para>It is recommended to append BOOST_PP_EMPTY() to whatever input is being tested in order to avoid possible warning messages from some compilers about no parameters being passed to the macro when the input is truly empty. </para></description></macro>
+<macro name="BOOST_VMD_IS_EMPTY" kind="functionlike"><macro-parameter name="..."/><purpose>Tests whether its input is empty or not. </purpose><description><para>The macro checks to see if the input is empty or not. It returns 1 if the input is empty, else returns 0.</para><para>The macro is a variadic macro taking any input. For the VC++8 compiler (VS2005) the macro takes a single parameter of input to check.</para><para>For all levels of C++ prior to C++20 the macro is not perfect, and can not be so. The problem area is if the input to be checked is a function-like macro name, in which case either a compiler error can result or a false result can occur.</para><para>For C++20, with its support for the new <emphasis role="bold">VA_OPT</emphasis> preprocessor construct, the macro will always work correctly no matter what the variadic input, and is therefore 100% reliable.</para><para>This macro is a replacement, using variadic macro support, for the undocumented macro BOOST_PP_IS_EMPTY in the Boost PP library. The code is taken from a posting by Paul Mensonides of a variadic version for BOOST_PP_IS_EMPTY, and changed in order to also support VC++. The code for the C++20 implementation of the macro, using the <emphasis role="bold">VA_OPT</emphasis> preprocessor construct, is the author's own and reuses code added to the Boost preprocessor library by this author.</para><para>... = variadic input, for VC++8 this must be a single parameter</para><para>returns = 1 if the input is empty, 0 if it is not</para><para>It is recommended to append BOOST_PP_EMPTY() to whatever input is being tested in order to avoid possible warning messages from some compilers about no parameters being passed to the macro when the input is truly empty. </para></description></macro>
+<macro name="BOOST_VMD_IS_EMPTY_NO_OPT" kind="functionlike"><macro-parameter name="..."/></macro>
 </header>
 <header name="boost/vmd/is_empty_array.hpp">
 <macro name="BOOST_VMD_IS_EMPTY_ARRAY" kind="functionlike"><macro-parameter name="sequence"/><purpose>Tests whether a sequence is an empty Boost PP array. </purpose><description><para>An empty Boost PP array is a two element tuple where the first size element is 0 and the second element is a tuple with a single empty element, ie. '(0,())'.</para><para>sequence = a possible empty array</para><para>returns = 1 if the sequence is an empty Boost PP array 0 if it is not.</para><para>The macro will generate a preprocessing error if the sequence is in the form of an array but its first tuple element, instead of being a number, is a preprocessor token which VMD cannot parse, as in the example '(&amp;0,())' which is a valid tuple but an invalid array. </para></description></macro>