mirror of
https://github.com/boostorg/preprocessor.git
synced 2025-07-03 07:46:31 +02:00
64 lines
3.5 KiB
HTML
64 lines
3.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
<HTML><HEAD><TITLE>Boost PREPROCESSOR library</TITLE>
|
||
|
||
<BODY bgcolor="#FFFFFF">
|
||
|
||
<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>
|
||
|
||
<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>
|
||
<LI><A href="reference/index.htm">Reference</A>
|
||
<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>
|
||
<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>
|
||
<p>The PREPROCESSOR library has been developed by
|
||
<a href="../../../people/vesa_karvonen.htm">Vesa Karvonen</a>.</p>
|
||
|
||
<hr>
|
||
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
|
||
<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>
|
||
<p>Updated: <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->30 Nov 2001<!--webbot bot="Timestamp" i-checksum="15239" endspan -->
|
||
<p></p>
|
||
|
||
</BODY></HTML> |