[Interest] MSVC 2013 Bug?
Igor Mironchik
igor.mironchik at gmail.com
Thu Nov 12 21:56:20 CET 2015
On 12.11.2015 23:38, Thiago Macieira wrote:
> On Thursday 12 November 2015 23:05:37 Igor Mironchik wrote:
>> Hi folks,
>>
>> Is it a bug or feature?
> First of all, allocating memory when throwing exceptions is bad practice.
> Avoid it by redesigning your code.
Can you, please, explain why allocating memory when throwing exception
is bad practice? Or just can you give a link on any article about this
question.... Thank you.
>
>> TextFileViewException::TextFileViewException( const QString & what )
>> : std::runtime_error( what.toLocal8Bit() )
>> , m_what( what )
>> {
>> }
>> Look at this line:
>>
>> std::runtime_error( what.toLocal8Bit() )
>>
>> std::runtime_error() constructs from QByteArray... How it is possible?
> Because toLocal8Bit() returns a QByteArray and QByteArray has an operator
> const char*(). Why would it not be possible?
>
> Do note that it compiles, but it's probably incorrect because
> std::runtime_error will probably be carrying a dangling pointer.
>
> Like I said, you should redesign so you don't allocate memory when throwing
> exceptions.
Thank you, I understood. Just interesting why Qt 5.5.1 on Windows
compiled without QT_NO_CAST_FROM_BYTEARRAY and on Linux with this one?
That is why I was a little confused... :)
--
Best Regards,
Igor Mironchik.
More information about the Interest
mailing list