<!-- This comment will put IE 6, 7 and 8 in quirks mode --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>ICU 4.4.1: UMemory Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javaScript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.6.2-20100208 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</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> </div> <div class="contents"> <h1>UMemory Class Reference</h1><!-- doxytag: class="UMemory" --> <p><a class="el" href="classUMemory.html" title="UMemory is the common ICU base class.">UMemory</a> is the common ICU base class. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="uobject_8h_source.html">uobject.h</a>></code></p> <div class="dynheader"> Inheritance diagram for UMemory:</div> <div class="dynsection"> <div class="center"> <img src="classUMemory.png" usemap="#UMemory_map" alt=""/> <map id="UMemory_map" name="UMemory_map"> <area href="classByteSink.html" alt="ByteSink" shape="rect" coords="0,56,182,80"/> <area href="classErrorCode.html" alt="ErrorCode" shape="rect" coords="192,56,374,80"/> <area href="classStringPiece.html" alt="StringPiece" shape="rect" coords="384,56,566,80"/> <area href="classUObject.html" alt="UObject" shape="rect" coords="576,56,758,80"/> <area href="classCheckedArrayByteSink.html" alt="CheckedArrayByteSink" shape="rect" coords="192,112,374,136"/> <area href="classStringByteSink.html" alt="StringByteSink< StringClass >" shape="rect" coords="192,168,374,192"/> <area href="classBoyerMooreSearch.html" alt="BoyerMooreSearch" shape="rect" coords="768,112,950,136"/> <area href="classBreakIterator.html" alt="BreakIterator" shape="rect" coords="768,168,950,192"/> <area href="classCalendar.html" alt="Calendar" shape="rect" coords="768,224,950,248"/> <area href="classCanonicalIterator.html" alt="CanonicalIterator" shape="rect" coords="768,280,950,304"/> <area href="classCEList.html" alt="CEList" shape="rect" coords="768,336,950,360"/> <area href="classCollationElementIterator.html" alt="CollationElementIterator" shape="rect" coords="768,392,950,416"/> <area href="classCollationKey.html" alt="CollationKey" shape="rect" coords="768,448,950,472"/> <area href="classCollator.html" alt="Collator" shape="rect" coords="768,504,950,528"/> <area href="classCollatorFactory.html" alt="CollatorFactory" shape="rect" coords="768,560,950,584"/> <area href="classCollData.html" alt="CollData" shape="rect" coords="768,616,950,640"/> <area href="classCurrencyPluralInfo.html" alt="CurrencyPluralInfo" shape="rect" coords="768,672,950,696"/> <area href="classDateFormatSymbols.html" alt="DateFormatSymbols" shape="rect" coords="768,728,950,752"/> <area href="classDateInterval.html" alt="DateInterval" shape="rect" coords="768,784,950,808"/> <area href="classDateIntervalInfo.html" alt="DateIntervalInfo" shape="rect" coords="768,840,950,864"/> <area href="classDateTimePatternGenerator.html" alt="DateTimePatternGenerator" shape="rect" coords="768,896,950,920"/> <area href="classDateTimeRule.html" alt="DateTimeRule" shape="rect" coords="768,952,950,976"/> <area href="classDecimalFormatSymbols.html" alt="DecimalFormatSymbols" shape="rect" coords="768,1008,950,1032"/> <area href="classFieldPosition.html" alt="FieldPosition" shape="rect" coords="768,1064,950,1088"/> <area href="classFieldPositionIterator.html" alt="FieldPositionIterator" shape="rect" coords="768,1120,950,1144"/> <area href="classFormat.html" alt="Format" shape="rect" coords="768,1176,950,1200"/> <area href="classFormattable.html" alt="Formattable" shape="rect" coords="768,1232,950,1256"/> <area href="classForwardCharacterIterator.html" alt="ForwardCharacterIterator" shape="rect" coords="768,1288,950,1312"/> <area href="classLayoutEngine.html" alt="LayoutEngine" shape="rect" coords="768,1344,950,1368"/> <area href="classLEFontInstance.html" alt="LEFontInstance" shape="rect" coords="768,1400,950,1424"/> <area href="classLEGlyphStorage.html" alt="LEGlyphStorage" shape="rect" coords="768,1456,950,1480"/> <area href="classLocale.html" alt="Locale" shape="rect" coords="768,1512,950,1536"/> <area href="classLocaleDisplayNames.html" alt="LocaleDisplayNames" shape="rect" coords="768,1568,950,1592"/> <area href="classMeasure.html" alt="Measure" shape="rect" coords="768,1624,950,1648"/> <area href="classMeasureUnit.html" alt="MeasureUnit" shape="rect" coords="768,1680,950,1704"/> <area href="classNormalizer.html" alt="Normalizer" shape="rect" coords="768,1736,950,1760"/> <area href="classNormalizer2.html" alt="Normalizer2" shape="rect" coords="768,1792,950,1816"/> <area href="classNumberFormatFactory.html" alt="NumberFormatFactory" shape="rect" coords="768,1848,950,1872"/> <area href="classNumberingSystem.html" alt="NumberingSystem" shape="rect" coords="768,1904,950,1928"/> <area href="classParagraphLayout.html" alt="ParagraphLayout" shape="rect" coords="768,1960,950,1984"/> <area href="classParagraphLayout_1_1Line.html" alt="ParagraphLayout::Line" shape="rect" coords="768,2016,950,2040"/> <area href="classParagraphLayout_1_1VisualRun.html" alt="ParagraphLayout::VisualRun" shape="rect" coords="768,2072,950,2096"/> <area href="classParsePosition.html" alt="ParsePosition" shape="rect" coords="768,2128,950,2152"/> <area href="classPluralRules.html" alt="PluralRules" shape="rect" coords="768,2184,950,2208"/> <area href="classRegexMatcher.html" alt="RegexMatcher" shape="rect" coords="768,2240,950,2264"/> <area href="classRegexPattern.html" alt="RegexPattern" shape="rect" coords="768,2296,950,2320"/> <area href="classReplaceable.html" alt="Replaceable" shape="rect" coords="768,2352,950,2376"/> <area href="classResourceBundle.html" alt="ResourceBundle" shape="rect" coords="768,2408,950,2432"/> <area href="classRunArray.html" alt="RunArray" shape="rect" coords="768,2464,950,2488"/> <area href="classSearchIterator.html" alt="SearchIterator" shape="rect" coords="768,2520,950,2544"/> <area href="classStringEnumeration.html" alt="StringEnumeration" shape="rect" coords="768,2576,950,2600"/> <area href="classStringList.html" alt="StringList" shape="rect" coords="768,2632,950,2656"/> <area href="classTimeZone.html" alt="TimeZone" shape="rect" coords="768,2688,950,2712"/> <area href="classTimeZoneRule.html" alt="TimeZoneRule" shape="rect" coords="768,2744,950,2768"/> <area href="classTimeZoneTransition.html" alt="TimeZoneTransition" shape="rect" coords="768,2800,950,2824"/> <area href="classTransliterator.html" alt="Transliterator" shape="rect" coords="768,2856,950,2880"/> <area href="classUnicodeFunctor.html" alt="UnicodeFunctor" shape="rect" coords="768,2912,950,2936"/> <area href="classUnicodeSetIterator.html" alt="UnicodeSetIterator" shape="rect" coords="768,2968,950,2992"/> </map> </div> </div> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#a309b19b5777e2840b85b202aef5a54fb">operator new</a> (size_t size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management. <a href="#a309b19b5777e2840b85b202aef5a54fb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#a4d0df3571728e7b8a823dbbea6e9b5c5">operator new[]</a> (size_t size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management. <a href="#a4d0df3571728e7b8a823dbbea6e9b5c5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#adcda65a58813749f8f45c5e6c1ed37e1">operator delete</a> (void *p)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management. <a href="#adcda65a58813749f8f45c5e6c1ed37e1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#a7602a7a8c6fdff21d9fbecea4d899333">operator delete[]</a> (void *p)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override for ICU4C C++ memory management. <a href="#a7602a7a8c6fdff21d9fbecea4d899333"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#a43b5221fe429f77230b2040f8724c154">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="#a43b5221fe429f77230b2040f8724c154"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classUMemory.html#a9b746b0cdb49c8f8907773002ea5c4ea">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="#a9b746b0cdb49c8f8907773002ea5c4ea"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p><a class="el" href="classUMemory.html" title="UMemory is the common ICU base class.">UMemory</a> is the common ICU base class. </p> <p>All other ICU C++ classes are derived from <a class="el" href="classUMemory.html" title="UMemory is the common ICU base class.">UMemory</a> (starting with ICU 2.4).</p> <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> <p>To override ALL ICU memory management, including that from plain C code, replace the allocation functions declared in cmemory.h</p> <p><a class="el" href="classUMemory.html" title="UMemory is the common ICU base class.">UMemory</a> does not contain any virtual functions. Common "boilerplate" functions are defined in <a class="el" href="classUObject.html" title="UObject is the common ICU "boilerplate" class.">UObject</a>.</p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001661">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> <p>Definition at line <a class="el" href="uobject_8h_source.html#l00101">101</a> of file <a class="el" href="uobject_8h_source.html">uobject.h</a>.</p> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a9b746b0cdb49c8f8907773002ea5c4ea"></a><!-- doxytag: member="UMemory::operator delete" ref="a9b746b0cdb49c8f8907773002ea5c4ea" 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><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Override for ICU4C C++ memory management for STL. </p> <p>See delete(). </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001668">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl> <p>Definition at line <a class="el" href="uobject_8h_source.html#l00159">159</a> of file <a class="el" href="uobject_8h_source.html">uobject.h</a>.</p> </div> </div> <a class="anchor" id="adcda65a58813749f8f45c5e6c1ed37e1"></a><!-- doxytag: member="UMemory::operator delete" ref="adcda65a58813749f8f45c5e6c1ed37e1" 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><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Override for ICU4C C++ memory management. </p> <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 </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001665">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> </div> </div> <a class="anchor" id="a7602a7a8c6fdff21d9fbecea4d899333"></a><!-- doxytag: member="UMemory::operator delete[]" ref="a7602a7a8c6fdff21d9fbecea4d899333" 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><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Override for ICU4C C++ memory management. </p> <p>See delete(). </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001666">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> </div> </div> <a class="anchor" id="a43b5221fe429f77230b2040f8724c154"></a><!-- doxytag: member="UMemory::operator new" ref="a43b5221fe429f77230b2040f8724c154" 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><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Override for ICU4C C++ memory management for STL. </p> <p>See new(). </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001667">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl> <p>Definition at line <a class="el" href="uobject_8h_source.html#l00152">152</a> of file <a class="el" href="uobject_8h_source.html">uobject.h</a>.</p> </div> </div> <a class="anchor" id="a309b19b5777e2840b85b202aef5a54fb"></a><!-- doxytag: member="UMemory::operator new" ref="a309b19b5777e2840b85b202aef5a54fb" 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><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Override for ICU4C C++ memory management. </p> <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 </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001663">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> </div> </div> <a class="anchor" id="a4d0df3571728e7b8a823dbbea6e9b5c5"></a><!-- doxytag: member="UMemory::operator new[]" ref="a4d0df3571728e7b8a823dbbea6e9b5c5" 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><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Override for ICU4C C++ memory management. </p> <p>See new(). </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001664">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> </div> </div> <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></li> </ul> </div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>