File: a00078.html

package info (click to toggle)
libloki 0.1.7-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,608 kB
  • sloc: cpp: 30,475; ansic: 1,974; makefile: 365; php: 316; perl: 108
file content (145 lines) | stat: -rwxr-xr-x 11,053 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Loki: Loki::LokiAllocator&lt; Type, AllocT &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00192.html">Loki</a>::<a class="el" href="a00078.html">LokiAllocator</a>
  </div>
</div>
<div class="contents">
<h1>Loki::LokiAllocator&lt; Type, AllocT &gt; Class Template Reference</h1><!-- doxytag: class="Loki::LokiAllocator" --><code>#include &lt;Allocator.h&gt;</code>
<p>

<p>
<a href="a00283.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">rebind</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert an allocator&lt;Type&gt; to an allocator &lt;Type1&gt;.  <a href="a00079.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ca0350e215466300ad6e6998f272aba5"></a><!-- doxytag: member="Loki::LokiAllocator::LokiAllocator" ref="ca0350e215466300ad6e6998f272aba5" args="(void)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#ca0350e215466300ad6e6998f272aba5">LokiAllocator</a> (void)  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor does nothing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="69aaba440cb8ee0527a04691c9e3b9eb"></a><!-- doxytag: member="Loki::LokiAllocator::LokiAllocator" ref="69aaba440cb8ee0527a04691c9e3b9eb" args="(const LokiAllocator &amp;)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#69aaba440cb8ee0527a04691c9e3b9eb">LokiAllocator</a> (const <a class="el" href="a00078.html">LokiAllocator</a> &amp;)  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor does nothing. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="59f6c62294dd2f4ab05e9c42bc9009c0"></a><!-- doxytag: member="Loki::LokiAllocator::LokiAllocator" ref="59f6c62294dd2f4ab05e9c42bc9009c0" args="(const LokiAllocator&lt; Type1 &gt; &amp;)" -->
template&lt;typename Type1 &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00078.html#59f6c62294dd2f4ab05e9c42bc9009c0">LokiAllocator</a> (const <a class="el" href="a00078.html">LokiAllocator</a>&lt; Type1 &gt; &amp;)  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type converting allocator constructor does nothing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9ac9082a843ef7c772a74a420d5ffd88"></a><!-- doxytag: member="Loki::LokiAllocator::~LokiAllocator" ref="9ac9082a843ef7c772a74a420d5ffd88" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#9ac9082a843ef7c772a74a420d5ffd88">~LokiAllocator</a> ()  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor does nothing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c95609b0bb01996e9d7fa94406f787b4"></a><!-- doxytag: member="Loki::LokiAllocator::address" ref="c95609b0bb01996e9d7fa94406f787b4" args="(reference elem) const " -->
pointer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#c95609b0bb01996e9d7fa94406f787b4">address</a> (reference elem) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return address of reference to mutable element. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6f984e7db2d509ad2b49d2229974d87c"></a><!-- doxytag: member="Loki::LokiAllocator::address" ref="6f984e7db2d509ad2b49d2229974d87c" args="(const_reference elem) const " -->
const_pointer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#6f984e7db2d509ad2b49d2229974d87c">address</a> (const_reference elem) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return address of reference to const element. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">pointer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#856c0d1e1f32b786421c02d468020758">allocate</a> (size_type count, const void *hint=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3713aa29d4ccf61db725f7ba4111eaa9"></a><!-- doxytag: member="Loki::LokiAllocator::deallocate" ref="3713aa29d4ccf61db725f7ba4111eaa9" args="(pointer p, size_type size)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#3713aa29d4ccf61db725f7ba4111eaa9">deallocate</a> (pointer p, size_type size)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ask allocator to release memory at pointer with size bytes. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="78270e4c9b333f80199bc0867b4b9e0a"></a><!-- doxytag: member="Loki::LokiAllocator::max_size" ref="78270e4c9b333f80199bc0867b4b9e0a" args="(void) const " -->
size_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#78270e4c9b333f80199bc0867b4b9e0a">max_size</a> (void) const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate max # of elements allocator can handle. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f6f7b3cb7e64ee71a2bda37e78c08654"></a><!-- doxytag: member="Loki::LokiAllocator::construct" ref="f6f7b3cb7e64ee71a2bda37e78c08654" args="(pointer p, const Type &amp;value)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#f6f7b3cb7e64ee71a2bda37e78c08654">construct</a> (pointer p, const Type &amp;value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct an element at the pointer. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="213cb5506ab35d29ad8a626165d2b03a"></a><!-- doxytag: member="Loki::LokiAllocator::destroy" ref="213cb5506ab35d29ad8a626165d2b03a" args="(pointer p)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#213cb5506ab35d29ad8a626165d2b03a">destroy</a> (pointer p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destruct the object at pointer. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename Type, typename AllocT = Loki::AllocatorSingleton&lt;&gt;&gt;<br>
 class Loki::LokiAllocator&lt; Type, AllocT &gt;</h3>

Adapts Loki's Small-Object Allocator for STL container classes. This class provides all the functionality required for STL allocators, but uses Loki's Small-Object Allocator to perform actual memory operations. Implementation comes from a post in <a class="el" href="a00192.html">Loki</a> forums (by Rasmus Ekman?). <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="856c0d1e1f32b786421c02d468020758"></a><!-- doxytag: member="Loki::LokiAllocator::allocate" ref="856c0d1e1f32b786421c02d468020758" args="(size_type count, const void *hint=0)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Type, typename AllocT = Loki::AllocatorSingleton&lt;&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">pointer <a class="el" href="a00078.html">Loki::LokiAllocator</a>&lt; Type, AllocT &gt;::allocate           </td>
          <td>(</td>
          <td class="paramtype">size_type&nbsp;</td>
          <td class="paramname"> <em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>hint</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate an array of count elements. Warning! The true parameter in the call to Allocate means this function can throw exceptions. This is better than not throwing, and returning a null pointer in case the caller assumes the return value is not null. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td># of elements in array. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hint</em>&nbsp;</td><td>Place where caller thinks allocation should occur. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to block of memory. </dd></dl>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>Allocator.h</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Jan 29 18:51:42 2009 for Loki by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>