source: NonGTP/Boost/boost/pool/detail/pool_construct_simple.m4 @ 857

Revision 857, 2.9 KB checked in by igarcia, 18 years ago (diff)
Line 
1m4_dnl
2m4_dnl Copyright (C) 2001 Stephen Cleary
3m4_dnl
4m4_dnl This file can be redistributed and/or modified under the terms found
5m4_dnl  in "copyright.html"
6m4_dnl This software and its documentation is provided "as is" without express or
7m4_dnl  implied warranty, and with no claim as to its suitability for any purpose.
8m4_dnl
9m4_dnl See http://www.boost.org for updates, documentation, and revision history.
10m4_dnl
11m4_dnl
12m4_dnl
13m4_dnl Avoid the use of any m4_* identifiers in this header file,
14m4_dnl  as that may cause incompatibility problems with future
15m4_dnl  versions of m4.
16m4_dnl
17m4_dnl This is a normal header file, except that lines starting
18m4_dnl  with `m4_dnl' will be stripped, TBA_FOR
19m4_dnl  macros will be replaced with repeated text, and text in
20m4_dnl  single quotes (`...') will have their single quotes
21m4_dnl  stripped.
22m4_dnl
23m4_dnl
24m4_dnl Check to make sure NumberOfArguments was defined.  If it's not defined,
25m4_dnl  default to 3
26m4_dnl
27m4_ifdef(`NumberOfArguments', , `m4_errprint(m4___file__:m4___line__`: NumberOfArguments is not defined; defaulting to 3
28')m4_define(`NumberOfArguments', 3)')m4_dnl
29m4_ifelse(NumberOfArguments, , `m4_errprint(m4___file__:m4___line__`: NumberOfArguments is defined to be empty; defaulting to 3
30')m4_define(`NumberOfArguments', 3)')m4_dnl
31m4_dnl
32m4_dnl Check to make sure NumberOfArguments >= 1.  If it's not, then fatal error.
33m4_dnl
34m4_ifelse(m4_eval(NumberOfArguments < 1), 1, `m4_errprint(m4___file__:m4___line__`: NumberOfArguments ('NumberOfArguments`) is less than 1
35')m4_m4exit(1)')m4_dnl
36m4_dnl
37m4_dnl Include the BOOST_M4_FOR macro definition
38m4_dnl
39m4_include(`for.m4')`'m4_dnl
40m4_dnl
41m4_dnl Begin the generated file.
42m4_dnl
43// Copyright (C) 2000 Stephen Cleary
44//
45// This file can be redistributed and/or modified under the terms found
46//  in "copyright.html"
47// This software and its documentation is provided "as is" without express or
48//  implied warranty, and with no claim as to its suitability for any purpose.
49//
50// See http://www.boost.org for updates, documentation, and revision history.
51
52m4_dnl These warnings apply to the file generated from this file.
53m4_dnl Of course, you may freely edit this file.
54// This file was AUTOMATICALLY GENERATED from "m4___file__"
55//  Do NOT include directly!
56//  Do NOT edit!
57
58m4_dnl
59m4_dnl Here we go through the actual loop.  For each number of arguments from
60m4_dnl   1 to NumberOfArguments, we create a template function that takes that
61m4_dnl   many template arguments.
62m4_dnl
63BOOST_M4_FOR(N, 1, NumberOfArguments + 1,
64`template <BOOST_M4_FOR(i, 0, N, `typename T`'i', `, ')>
65element_type * construct(BOOST_M4_FOR(i, 0, N,
66    `const T`'i & a`'i', `, '))
67{
68  element_type * const ret = malloc();
69  if (ret == 0)
70    return ret;
71  try { new (ret) element_type(BOOST_M4_FOR(i, 0, N, `a`'i', `, ')); }
72  catch (...) { free(ret); throw; }
73  return ret;
74}
75')
Note: See TracBrowser for help on using the repository browser.