<!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>CCfits: CCfits::FITSUtil::auto_array_ptr< X > 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.6.1 --> <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><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> </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"><b>CCfits</b>::<b>FITSUtil</b>::<a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html">auto_array_ptr</a> </div> </div> <div class="contents"> <h1>CCfits::FITSUtil::auto_array_ptr< X > Class Template Reference</h1><!-- doxytag: class="CCfits::FITSUtil::auto_array_ptr" --> <p>A class that mimics the std:: library auto_ptr class, but works with arrays. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="FITSUtil_8h_source.html">FITSUtil.h</a>></code></p> <p><a href="classCCfits_1_1FITSUtil_1_1auto__array__ptr-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3be729bfbf66a839903e92cfa0301b21"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::auto_array_ptr" ref="a3be729bfbf66a839903e92cfa0301b21" args="(auto_array_ptr< X > &right)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#a3be729bfbf66a839903e92cfa0301b21">auto_array_ptr</a> (<a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html">auto_array_ptr</a>< X > &right) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">copy constructor <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7eff76215f0bd5ac0aec23c39b903fe"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::auto_array_ptr" ref="aa7eff76215f0bd5ac0aec23c39b903fe" args="(X *p=0)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#aa7eff76215f0bd5ac0aec23c39b903fe">auto_array_ptr</a> (X *p=0) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">constructor. allows creation of pointer to null, can be modified by <a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#af2e65ee8fafdd812f2782da2dfea285a" title="change the content of the auto_array_ptr to p">reset()</a> <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53dbf2f60ac2851b86b70dad5619b862"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::~auto_array_ptr" ref="a53dbf2f60ac2851b86b70dad5619b862" args="()" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#a53dbf2f60ac2851b86b70dad5619b862">~auto_array_ptr</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">destructor. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6cf9e51e5dd7a9d9d512900465c5ea1f"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::get" ref="a6cf9e51e5dd7a9d9d512900465c5ea1f" args="() const " --> X * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#a6cf9e51e5dd7a9d9d512900465c5ea1f">get</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return a token for the underlying content of *this <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46abc946300c6b7deaa7e456ba9f1aed"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::operator*" ref="a46abc946300c6b7deaa7e456ba9f1aed" args="()" --> X & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#a46abc946300c6b7deaa7e456ba9f1aed">operator*</a> () throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">deference operator <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13ae387ac0d5d498974cc05d5ff878ae"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::operator=" ref="a13ae387ac0d5d498974cc05d5ff878ae" args="(auto_array_ptr< X > &right)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#a13ae387ac0d5d498974cc05d5ff878ae">operator=</a> (<a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html">auto_array_ptr</a>< X > &right)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">assignment operator: transfer of ownership semantics <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a71fed8548c3d114a231a3ea87f35e218"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::operator[]" ref="a71fed8548c3d114a231a3ea87f35e218" args="(size_t i) const " --> X </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#a71fed8548c3d114a231a3ea87f35e218">operator[]</a> (size_t i) const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return a copy of the ith element of the array <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a114a298f4d870f74ed1039c6ee41b2b5"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::operator[]" ref="a114a298f4d870f74ed1039c6ee41b2b5" args="(size_t i)" --> X & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#a114a298f4d870f74ed1039c6ee41b2b5">operator[]</a> (size_t i) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return a reference to the ith element of the array <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a994e12743b5b7d75b4168ac095a60c1f"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::release" ref="a994e12743b5b7d75b4168ac095a60c1f" args="()" --> X * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#a994e12743b5b7d75b4168ac095a60c1f">release</a> () throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return underlying content of *this, transferring memory ownership <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2e65ee8fafdd812f2782da2dfea285a"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::reset" ref="af2e65ee8fafdd812f2782da2dfea285a" args="(X *p)" --> X * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#af2e65ee8fafdd812f2782da2dfea285a">reset</a> (X *p) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">change the content of the <a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html" title="A class that mimics the std:: library auto_ptr class, but works with arrays.">auto_array_ptr</a> to p <br/></td></tr> <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13ca62c9f81dbc710968b2afae2d18a7"></a><!-- doxytag: member="CCfits::FITSUtil::auto_array_ptr::remove" ref="a13ca62c9f81dbc710968b2afae2d18a7" args="(X *&x)" --> static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCCfits_1_1FITSUtil_1_1auto__array__ptr.html#a13ca62c9f81dbc710968b2afae2d18a7">remove</a> (X *&x)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">utility function to delete the memory owned by x and set it to null. <br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <h3>template<typename X><br/> class CCfits::FITSUtil::auto_array_ptr< X ></h3> <p>A class that mimics the std:: library auto_ptr class, but works with arrays. </p> <p>This code was written by Jack Reeves and first appeared C++ Report, March 1996 edition. Although some authors think one shouldn't need such a contrivance, there seems to be a need for it when wrapping C code.</p> <p>Usage: replace</p> <p>float* <em>f</em> = new float[200];</p> <p>with</p> <p>FITSUtil::auto_array_ptr<float> <em>f(new float[200])</em>;</p> <p>Then the memory will be managed correctly in the presence of exceptions, and delete will be called automatically for <em>f</em> when leaving scope. </p> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="FITSUtil_8h_source.html">FITSUtil.h</a></li> </ul> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on Wed Sep 9 11:59:48 2009 for CCfits by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>