forked from boostorg/preprocessor
55 lines
2.8 KiB
HTML
55 lines
2.8 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
<HTML><HEAD><TITLE>Boost PREPROCESSOR library</TITLE>
|
||
<BODY bgcolor="#FFFFFF">
|
||
<IMG
|
||
src="../../../c++boost.gif"
|
||
alt="c++boost.gif (8819 bytes)" align=center width="277" height="86">
|
||
<hr>
|
||
|
||
<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.html">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>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> |