<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ICU 3.8: UMemory Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.1 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li id="current"><a href="classes.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</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="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul></div> <h1>UMemory Class Reference</h1><!-- doxytag: class="UMemory" --><a class="el" href="classUMemory.html">UMemory</a> is the common ICU base class. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="uobject_8h-source.html">uobject.h</a>></code> <p> <p>Inheritance diagram for UMemory: <p><center><img src="classUMemory.png" usemap="#UMemory_map" border="0" alt=""></center> <map name="UMemory_map"> <area href="classUObject.html" alt="UObject" shape="rect" coords="0,56,173,80"> <area href="classBreakIterator.html" alt="BreakIterator" shape="rect" coords="183,112,356,136"> <area href="classCalendar.html" alt="Calendar" shape="rect" coords="183,168,356,192"> <area href="classCanonicalIterator.html" alt="CanonicalIterator" shape="rect" coords="183,224,356,248"> <area href="classCollationElementIterator.html" alt="CollationElementIterator" shape="rect" coords="183,280,356,304"> <area href="classCollationKey.html" alt="CollationKey" shape="rect" coords="183,336,356,360"> <area href="classCollator.html" alt="Collator" shape="rect" coords="183,392,356,416"> <area href="classCollatorFactory.html" alt="CollatorFactory" shape="rect" coords="183,448,356,472"> <area href="classDateFormatSymbols.html" alt="DateFormatSymbols" shape="rect" coords="183,504,356,528"> <area href="classDateTimePatternGenerator.html" alt="DateTimePatternGenerator" shape="rect" coords="183,560,356,584"> <area href="classDateTimeRule.html" alt="DateTimeRule" shape="rect" coords="183,616,356,640"> <area href="classDecimalFormatSymbols.html" alt="DecimalFormatSymbols" shape="rect" coords="183,672,356,696"> <area href="classFieldPosition.html" alt="FieldPosition" shape="rect" coords="183,728,356,752"> <area href="classFormat.html" alt="Format" shape="rect" coords="183,784,356,808"> <area href="classFormattable.html" alt="Formattable" shape="rect" coords="183,840,356,864"> <area href="classForwardCharacterIterator.html" alt="ForwardCharacterIterator" shape="rect" coords="183,896,356,920"> <area href="classLayoutEngine.html" alt="LayoutEngine" shape="rect" coords="183,952,356,976"> <area href="classLEFontInstance.html" alt="LEFontInstance" shape="rect" coords="183,1008,356,1032"> <area href="classLEGlyphStorage.html" alt="LEGlyphStorage" shape="rect" coords="183,1064,356,1088"> <area href="classLocale.html" alt="Locale" shape="rect" coords="183,1120,356,1144"> <area href="classMeasure.html" alt="Measure" shape="rect" coords="183,1176,356,1200"> <area href="classMeasureUnit.html" alt="MeasureUnit" shape="rect" coords="183,1232,356,1256"> <area href="classNormalizer.html" alt="Normalizer" shape="rect" coords="183,1288,356,1312"> <area href="classNumberFormatFactory.html" alt="NumberFormatFactory" shape="rect" coords="183,1344,356,1368"> <area href="classParagraphLayout.html" alt="ParagraphLayout" shape="rect" coords="183,1400,356,1424"> <area href="classParagraphLayout_1_1Line.html" alt="ParagraphLayout::Line" shape="rect" coords="183,1456,356,1480"> <area href="classParagraphLayout_1_1VisualRun.html" alt="ParagraphLayout::VisualRun" shape="rect" coords="183,1512,356,1536"> <area href="classParsePosition.html" alt="ParsePosition" shape="rect" coords="183,1568,356,1592"> <area href="classRegexMatcher.html" alt="RegexMatcher" shape="rect" coords="183,1624,356,1648"> <area href="classRegexPattern.html" alt="RegexPattern" shape="rect" coords="183,1680,356,1704"> <area href="classReplaceable.html" alt="Replaceable" shape="rect" coords="183,1736,356,1760"> <area href="classResourceBundle.html" alt="ResourceBundle" shape="rect" coords="183,1792,356,1816"> <area href="classRunArray.html" alt="RunArray" shape="rect" coords="183,1848,356,1872"> <area href="classSearchIterator.html" alt="SearchIterator" shape="rect" coords="183,1904,356,1928"> <area href="classStringEnumeration.html" alt="StringEnumeration" shape="rect" coords="183,1960,356,1984"> <area href="classTimeZone.html" alt="TimeZone" shape="rect" coords="183,2016,356,2040"> <area href="classTimeZoneRule.html" alt="TimeZoneRule" shape="rect" coords="183,2072,356,2096"> <area href="classTimeZoneTransition.html" alt="TimeZoneTransition" shape="rect" coords="183,2128,356,2152"> <area href="classTransliterator.html" alt="Transliterator" shape="rect" coords="183,2184,356,2208"> <area href="classUnicodeFunctor.html" alt="UnicodeFunctor" shape="rect" coords="183,2240,356,2264"> <area href="classUnicodeSetIterator.html" alt="UnicodeSetIterator" shape="rect" coords="183,2296,356,2320"> </map> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#309b19b5777e2840b85b202aef5a54fb">operator new</a> (size_t size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management. <a href="#309b19b5777e2840b85b202aef5a54fb"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#4d0df3571728e7b8a823dbbea6e9b5c5">operator new[]</a> (size_t size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management. <a href="#4d0df3571728e7b8a823dbbea6e9b5c5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#dcda65a58813749f8f45c5e6c1ed37e1">operator delete</a> (void *p)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management. <a href="#dcda65a58813749f8f45c5e6c1ed37e1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#7602a7a8c6fdff21d9fbecea4d899333">operator delete[]</a> (void *p)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management. <a href="#7602a7a8c6fdff21d9fbecea4d899333"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#43b5221fe429f77230b2040f8724c154">operator new</a> (size_t, void *ptr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management for STL. <a href="#43b5221fe429f77230b2040f8724c154"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#9b746b0cdb49c8f8907773002ea5c4ea">operator delete</a> (void *, void *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management for STL. <a href="#9b746b0cdb49c8f8907773002ea5c4ea"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <a class="el" href="classUMemory.html">UMemory</a> is the common ICU base class. <p> All other ICU C++ classes are derived from <a class="el" href="classUMemory.html">UMemory</a> (starting with ICU 2.4).<p> This is primarily to make it possible and simple to override the C++ memory management by adding new/delete operators to this base class.<p> To override ALL ICU memory management, including that from plain C code, replace the allocation functions declared in cmemory.h<p> <a class="el" href="classUMemory.html">UMemory</a> does not contain any virtual functions. Common "boilerplate" functions are defined in <a class="el" href="classUObject.html">UObject</a>.<p> <dl compact><dt><b><a class="el" href="stable.html#_stable001543">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> <p> <p> Definition at line <a class="el" href="uobject_8h-source.html#l00077">77</a> of file <a class="el" href="uobject_8h-source.html">uobject.h</a>.<hr><h2>Member Function Documentation</h2> <a class="anchor" name="309b19b5777e2840b85b202aef5a54fb"></a><!-- doxytag: member="UMemory::operator new" ref="309b19b5777e2840b85b202aef5a54fb" args="(size_t size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void* UMemory::operator new </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"> <em>size</em> </td> <td> ) </td> <td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Override for ICU4C C++ memory management. <p> simple, non-class types are allocated using the macros in common/cmemory.h (uprv_malloc(), uprv_free(), uprv_realloc()); they or something else could be used here to implement C++ new/delete for ICU4C C++ classes <dl compact><dt><b><a class="el" href="stable.html#_stable001545">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> </div> </div><p> <a class="anchor" name="4d0df3571728e7b8a823dbbea6e9b5c5"></a><!-- doxytag: member="UMemory::operator new[]" ref="4d0df3571728e7b8a823dbbea6e9b5c5" args="(size_t size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void* UMemory::operator new[] </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"> <em>size</em> </td> <td> ) </td> <td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Override for ICU4C C++ memory management. <p> See new(). <dl compact><dt><b><a class="el" href="stable.html#_stable001546">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> </div> </div><p> <a class="anchor" name="dcda65a58813749f8f45c5e6c1ed37e1"></a><!-- doxytag: member="UMemory::operator delete" ref="dcda65a58813749f8f45c5e6c1ed37e1" args="(void *p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void UMemory::operator delete </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>p</em> </td> <td> ) </td> <td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Override for ICU4C C++ memory management. <p> simple, non-class types are allocated using the macros in common/cmemory.h (uprv_malloc(), uprv_free(), uprv_realloc()); they or something else could be used here to implement C++ new/delete for ICU4C C++ classes <dl compact><dt><b><a class="el" href="stable.html#_stable001547">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> </div> </div><p> <a class="anchor" name="7602a7a8c6fdff21d9fbecea4d899333"></a><!-- doxytag: member="UMemory::operator delete[]" ref="7602a7a8c6fdff21d9fbecea4d899333" args="(void *p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void UMemory::operator delete[] </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>p</em> </td> <td> ) </td> <td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Override for ICU4C C++ memory management. <p> See delete(). <dl compact><dt><b><a class="el" href="stable.html#_stable001548">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> </div> </div><p> <a class="anchor" name="43b5221fe429f77230b2040f8724c154"></a><!-- doxytag: member="UMemory::operator new" ref="43b5221fe429f77230b2040f8724c154" args="(size_t, void *ptr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void* UMemory::operator new </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>ptr</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Override for ICU4C C++ memory management for STL. <p> See new(). <dl compact><dt><b><a class="el" href="stable.html#_stable001549">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl> <p> Definition at line <a class="el" href="uobject_8h-source.html#l00121">121</a> of file <a class="el" href="uobject_8h-source.html">uobject.h</a>. </div> </div><p> <a class="anchor" name="9b746b0cdb49c8f8907773002ea5c4ea"></a><!-- doxytag: member="UMemory::operator delete" ref="9b746b0cdb49c8f8907773002ea5c4ea" args="(void *, void *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void UMemory::operator delete </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Override for ICU4C C++ memory management for STL. <p> See delete(). <dl compact><dt><b><a class="el" href="stable.html#_stable001550">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl> <p> Definition at line <a class="el" href="uobject_8h-source.html#l00128">128</a> of file <a class="el" href="uobject_8h-source.html">uobject.h</a>. </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="uobject_8h-source.html">uobject.h</a></ul> <hr size="1"><address style="align: right;"><small>Generated on Fri Sep 14 12:59:48 2007 for ICU 3.8 by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address> </body> </html>