<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
  <meta http-equiv="Content-Language" content="en-us">
  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
  <link href="../pool.css" rel="stylesheet" type="text/css">

  <title>Object Pool Constructors Generator</title>
</head>

<body>
  <img src="../../../../boost.png" width="276" height="86" alt="C++ Boost">

  <h1 align="center">Object Pool Constructors Generator</h1>

  <h2>Description</h2>

  <p>The template class <span class="code">object_pool</span> (see <a href=
  "object_pool.html">object_pool.html</a>) contains a number of functions
  <span class="code">construct(..)</span>, which both allocate and construct
  an object in a single operation.</p>

  <p>Since the number and type of arguments to this function is totally
  arbitrary, a simple system has been set up to automatically generate
  template <span class="code">construct</span> functions. This system is
  based on the macro preprocessor <strong>m4</strong>, which is standard on
  UNIX systems and also available for Win32 systems.</p>

  <p>detail/pool_construct.m4, when run with <strong>m4</strong>, will create
  the file detail/pool_construct.inc, which only defines the <span class=
  "code">construct</span> functions for the proper number of arguments. The
  number of arguments may be passed into the file as an m4 macro,
  <span class="code">NumberOfArguments</span>; if not provided, it will
  default to <span class="code">3</span>.</p>

  <p>For each different number of arguments (<span class="code">1</span> to
  <span class="code">NumberOfArguments</span>), a template function is
  generated. There are the same number of template parameters as there are
  arguments, and each argument's type is a reference to that (possibly
  cv-qualified) template argument. Each possible permutation of the
  cv-qualifications is also generated.</p>

  <p>Because each permutation is generated for each possible number of
  arguments, the included file size grows exponentially in terms of the
  number of constructor arguments, not linearly. For the sake of rational
  compile times, only use as many arguments as you need.</p>

  <p>detail/pool_construct.bat and detail/pool_construct.sh are also provided
  to call <strong>m4</strong>, defining <span class=
  "code">NumberOfArguments</span> to be their command-line parameter. See
  these files for more details.</p>

  <h2>Dependencies</h2>

  <p>Dependent on for.m4 (see <a href="for.html">for.html</a>).</p>

  <h2>Future Directions</h2>

  <p>This system may be complemented by or replaced by a Python (or some
  other language) script.</p>

  <h2><a href="../interfaces/object_pool.html">Interface Description</a></h2>
  <hr>

  <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
  "../../../../doc/images/valid-html401.png" alt="Valid HTML 4.01 Transitional"
  height="31" width="88"></a></p>

  <p>Revised 
  <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->05
  December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>

  <p><i>Copyright &copy; 2000, 2001 Stephen Cleary (scleary AT jerviswebb DOT
  com)</i></p>

  <p><i>Distributed under the Boost Software License, Version 1.0. (See
  accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
  or copy at <a href=
  "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
</body>
</html>
