2002-02-04 14:57:59 +00:00
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
2002-02-05 12:16:25 +00:00
|
|
|
<title>Boost.Preprocessor - Reference</title>
|
2002-02-04 14:57:59 +00:00
|
|
|
</head>
|
|
|
|
<body bgcolor="#FFFFFF" link="#0000ff" vlink="#800080">
|
|
|
|
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
|
|
|
|
"header">
|
|
|
|
<tr>
|
|
|
|
<td valign="top" width="300">
|
|
|
|
<h3><a href="../../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../../c++boost.gif" border="0"></a></h3>
|
|
|
|
</td>
|
|
|
|
<td valign="top">
|
|
|
|
<h1 align="center">Boost.Preprocessor</h1>
|
|
|
|
<h2 align="center">Reference</h2>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<hr>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<a href="list.htm">Prev</a> <a href="list_append.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
2002-01-31 15:36:01 +00:00
|
|
|
<hr>
|
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<h1>#include <<a href="../../../../boost/preprocessor/list/adt.hpp">boost/preprocessor/list/adt.hpp</a>></h1>
|
|
|
|
<p>This header defines the fundamental list operations.</p>
|
|
|
|
|
|
|
|
<h3>Note</h3>
|
|
|
|
<ul>
|
|
|
|
<li>The internal representation of lists is hidden. Although there aren't
|
|
|
|
compelling reasons to change the representation, you should avoid
|
|
|
|
writing code that depends on the internal representation details.</li>
|
|
|
|
</ul>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
|
|
|
<hr>
|
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<h2><a name="BOOST_PP_LIST_CONS">#define BOOST_PP_LIST_CONS</a>(H,T)</h2>
|
|
|
|
<p>List constructor.</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>Lists are build using list constructors <a href="list_adt.htm#BOOST_PP_LIST_NIL">BOOST_PP_LIST_NIL</a> and
|
|
|
|
<a href="list_adt.htm#BOOST_PP_LIST_CONS">BOOST_PP_LIST_CONS</a>(). For example,</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<pre>
|
2002-01-31 15:36:01 +00:00
|
|
|
<a href="list_adt.htm#BOOST_PP_LIST_CONS">BOOST_PP_LIST_CONS</a>(1,
|
|
|
|
<a href="list_adt.htm#BOOST_PP_LIST_CONS">BOOST_PP_LIST_CONS</a>(2,
|
|
|
|
<a href="list_adt.htm#BOOST_PP_LIST_CONS">BOOST_PP_LIST_CONS</a>(3,
|
|
|
|
<a href="list_adt.htm#BOOST_PP_LIST_CONS">BOOST_PP_LIST_CONS</a>(4,
|
|
|
|
<a href="list_adt.htm#BOOST_PP_LIST_CONS">BOOST_PP_LIST_CONS</a>(5,
|
|
|
|
<a href="list_adt.htm#BOOST_PP_LIST_NIL">BOOST_PP_LIST_NIL</a>)))))
|
2002-02-04 14:57:59 +00:00
|
|
|
</pre>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>Short lists can also be build from tuples:</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<pre>
|
2002-01-31 15:36:01 +00:00
|
|
|
<a href="tuple_to_list.htm#BOOST_PP_TUPLE_TO_LIST">BOOST_PP_TUPLE_TO_LIST</a>(5,(1,2,3,4,5))
|
2002-02-04 14:57:59 +00:00
|
|
|
</pre>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>Both of the above lists contain 5 elements: 1, 2, 3, 4 and 5.</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>Longer lists can be built with the help of <a href="list_append.htm#BOOST_PP_LIST_APPEND">BOOST_PP_LIST_APPEND</a>().</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
|
|
|
<hr>
|
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<h2><a name="BOOST_PP_LIST_NIL">#define BOOST_PP_LIST_NIL</a></h2>
|
|
|
|
<p>List nil constructor.</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
<hr>
|
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<h2><a name="BOOST_PP_LIST_IS_CONS">#define BOOST_PP_LIST_IS_CONS</a>(L)</h2>
|
|
|
|
<p>Expands to 1 if the list is not nil and 0 otherwise.</p>
|
|
|
|
<hr>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<h2><a name="BOOST_PP_LIST_IS_NIL">#define BOOST_PP_LIST_IS_NIL</a>(L)</h2>
|
|
|
|
<p>Expands to 1 if the list is nil and 0 otherwise.</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
<hr>
|
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<h2><a name="BOOST_PP_LIST_FIRST">#define BOOST_PP_LIST_FIRST</a>(L)</h2>
|
|
|
|
<p>Expands to the first element of the list. The list must not be nil.</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>For example,</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<pre>
|
2002-01-31 15:36:01 +00:00
|
|
|
<a href="list_adt.htm#BOOST_PP_LIST_FIRST">BOOST_PP_LIST_FIRST</a>(<a href="tuple_to_list.htm#BOOST_PP_TUPLE_TO_LIST">BOOST_PP_TUPLE_TO_LIST</a>(5,(1,2,3,4,5)))
|
2002-02-04 14:57:59 +00:00
|
|
|
</pre>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>expands to 1.</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
|
|
|
<hr>
|
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<h2><a name="BOOST_PP_LIST_REST">#define BOOST_PP_LIST_REST</a>(L)</h2>
|
|
|
|
<p>Expands to a list of all but the first element of the list.</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>The list must not be nil.</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>For example,</p>
|
|
|
|
|
|
|
|
<pre>
|
2002-01-31 15:36:01 +00:00
|
|
|
<a href="list_adt.htm#BOOST_PP_LIST_REST">BOOST_PP_LIST_REST</a>(<a href="tuple_to_list.htm#BOOST_PP_TUPLE_TO_LIST">BOOST_PP_TUPLE_TO_LIST</a>(5,(1,2,3,4,5)))
|
2002-02-04 14:57:59 +00:00
|
|
|
</pre>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>expands to the same as:</p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<pre>
|
|
|
|
<a href="tuple_to_list.htm#BOOST_PP_TUPLE_TO_LIST">BOOST_PP_TUPLE_TO_LIST</a>(4,(2,3,4,5))
|
|
|
|
</pre>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
|
|
|
<hr>
|
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<a href="list.htm">Prev</a> <a href="list_append.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
|
|
|
<hr>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan --><!--webbot bot="Timestamp" endspan i-checksum="15246" --></p>
|
|
|
|
|
|
|
|
<p><i>© Copyright <a href="http://www.housemarque.com">Housemarque Oy</a> 2002</i></p>
|
|
|
|
|
|
|
|
<p><i>Permission to copy, use, modify, sell and distribute this document is granted
|
2002-01-31 15:36:01 +00:00
|
|
|
provided this copyright notice appears in all copies. This document is provided
|
|
|
|
"as is" without express or implied warranty, and with no claim as to its suitability
|
2002-02-04 14:57:59 +00:00
|
|
|
for any purpose.</i></p>
|
2002-01-31 15:36:01 +00:00
|
|
|
|
2002-02-04 14:57:59 +00:00
|
|
|
</body></html>
|