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