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< Type, AllocT > 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 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> <u>S</u>earch for </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 List</span></a></li>
<li><a href="classes.html"><span>Class Index</span></a></li>
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class 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< Type, AllocT > Class Template Reference</h1><!-- doxytag: class="Loki::LokiAllocator" --><code>#include <Allocator.h></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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">rebind</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert an allocator<Type> to an allocator <Type1>. <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)" -->
</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#ca0350e215466300ad6e6998f272aba5">LokiAllocator</a> (void) throw ()</td></tr>
<tr><td class="mdescLeft"> </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 &)" -->
</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#69aaba440cb8ee0527a04691c9e3b9eb">LokiAllocator</a> (const <a class="el" href="a00078.html">LokiAllocator</a> &) throw ()</td></tr>
<tr><td class="mdescLeft"> </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< Type1 > &)" -->
template<typename Type1 > </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00078.html#59f6c62294dd2f4ab05e9c42bc9009c0">LokiAllocator</a> (const <a class="el" href="a00078.html">LokiAllocator</a>< Type1 > &) throw ()</td></tr>
<tr><td class="mdescLeft"> </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="()" -->
</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#9ac9082a843ef7c772a74a420d5ffd88">~LokiAllocator</a> () throw ()</td></tr>
<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#c95609b0bb01996e9d7fa94406f787b4">address</a> (reference elem) const </td></tr>
<tr><td class="mdescLeft"> </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 </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"> </td><td class="mdescRight">Return address of reference to const element. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">pointer </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 </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"> </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 </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"> </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 &value)" -->
void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#f6f7b3cb7e64ee71a2bda37e78c08654">construct</a> (pointer p, const Type &value)</td></tr>
<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#213cb5506ab35d29ad8a626165d2b03a">destroy</a> (pointer p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Destruct the object at pointer. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template<typename Type, typename AllocT = Loki::AllocatorSingleton<>><br>
class Loki::LokiAllocator< Type, AllocT ></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<typename Type, typename AllocT = Loki::AllocatorSingleton<>> </div>
<table class="memname">
<tr>
<td class="memname">pointer <a class="el" href="a00078.html">Loki::LokiAllocator</a>< Type, AllocT >::allocate </td>
<td>(</td>
<td class="paramtype">size_type </td>
<td class="paramname"> <em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"> <em>hint</em> = <code>0</code></td><td> </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> </td><td># of elements in array. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>hint</em> </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
<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>
|