Files
preprocessor/doc/reference/list_adt.htm

121 lines
4.2 KiB
HTML
Raw Normal View History

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 &lt;<a href="../../../../boost/preprocessor/list/adt.hpp">boost/preprocessor/list/adt.hpp</a>&gt;</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>&copy; 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>