‘auto_ptr’ is deprecated in sc/source/core/tool/rangenam.cxx

Michael Stahl mstahl at redhat.com
Thu Sep 20 10:54:16 PDT 2012


On 20/09/12 19:23, julien2412 wrote:
> Hello,
> 
> WAE is enabled in my autogen.lastrun for master sources. I just updated and
> had this during compilation:
> /home/julien/compile-libreoffice/libo/sc/source/core/tool/rangenam.cxx: In
> member function ‘void ScRangeData::SetCode(ScTokenArray&)’:
> /home/julien/compile-libreoffice/libo/sc/source/core/tool/rangenam.cxx:642:50:
> error: ‘auto_ptr’ is deprecated (declared at
> /usr/include/c++/4.7/backward/auto_ptr.h:87)
> [-Werror=deprecated-declarations]
> cc1plus: all warnings being treated as errors
> 
> Here are the lines:
>     640 void ScRangeData::SetCode( ScTokenArray& rArr )
>     641 {
>     642     ::std::auto_ptr<ScTokenArray> pOldCode( pCode);     // old pCode
> will be deleted
>     643     pCode = new ScTokenArray( rArr );
>     644     InitCode();
>     645 }
> 
> 
> Could it be replaced by a non deprecated function (I don't know between
> std::shared_ptr, std::unique_ptr or boost functions)?

usually can be replaced with boost::scoped_ptr.

but in this case i wonder, what purpose does pOldCode serve?
why isn't pCode some kind of smart pointer?




More information about the LibreOffice mailing list