Files
preprocessor/doc/index.htm

64 lines
3.5 KiB
HTML
Raw Normal View History

2001-11-25 18:32:11 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Boost PREPROCESSOR library</TITLE>
2002-01-20 16:49:07 +00:00
2001-11-25 18:32:11 +00:00
<BODY bgcolor="#FFFFFF">
2002-01-20 16:49:07 +00:00
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../../../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../../../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../../../people/people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="../../../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
<td><a href="../../../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
</tr>
</table>
2001-11-25 18:32:11 +00:00
<h1>Boost PREPROCESSOR library</h1>
<p>C++ programming sometimes involves repeating lists of template or function
parameters. Such repetition is troublesome, because it tends to be done manually,
which means that the maximum number of parameters is bound into the design of
the program making it difficult to configure. Automating the repetition using
extra linguistic tools introduces another set of problems.</p>
<p>The C preprocessor is part of the C++ language and can manipulate and generate
tokens. Unfortunately the C preprocessor is also a very low level macro processor.
In particular, it doesn't directly support repetition or recursion. Fortunately
it is possible to perform finite repetition and recursion using a library of
preprocessor primitives.</p>
<p>The PREPROCESSOR library provides facilities for C preprocessor metaprogramming.
Preprocessor metaprogramming makes it possible to generate function and template
parameter lists and make libraries configurable through preprocessor definitions.</p>
<h2>Documentation</h2>
<DL>
<LI><A href="tutorial.htm">Tutorial</A>
2002-01-31 15:36:01 +00:00
<LI><A href="reference/index.htm">Reference</A>
2001-11-25 18:32:11 +00:00
<LI><a href="known_problems_with_cpp.htm">Widely known problems with the C preprocessor</a>
<LI><A href="keywords.txt">Keywords for syntax highlighting</A>
2001-11-25 18:32:11 +00:00
<LI><A href="references.htm">References</A>
<LI><A href="problems_with_compilers.htm">Known problems with specific compilers</A>
</DL>
<h3>Acknowledgements</h3>
<p>The original idea of passing two extra parameters to REPEAT, which makes it
possible to create preprocessor code on top of it, was due to Aleksey Gurtovoy.
The invokeable IDENTITY macro was also invented by him. He also suggested the
name for the library. Many thanks to Aleksey for his insights!</p>
<p>Thanks to everyone who participated in the review: David Abrahams, Beman Dawes,
Ronald Garcia, Douglas Gregor, Aleksey Gurtovoy, Jeremy Siek, and Daryle Walker.</p>
<p>Thanks to Chris Little and Mat Marcus for providing help with MWCW.</p>
2001-11-30 16:43:21 +00:00
<p>The PREPROCESSOR library has been developed by
<a href="../../../people/vesa_karvonen.htm">Vesa Karvonen</a>.</p>
2001-11-25 18:32:11 +00:00
<hr>
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
2001-11-25 18:32:11 +00:00
<p>Permission to copy, use, modify, sell and distribute this document is granted
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
for any purpose. </p>
2001-11-30 16:43:21 +00:00
<p>Updated: <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->30 Nov 2001<!--webbot bot="Timestamp" i-checksum="15239" endspan -->
2001-11-25 18:32:11 +00:00
<p></p>
2001-11-30 16:43:21 +00:00
</BODY></HTML>