using bool in rtl::OUStringBuffer::append
Noel Grandin
noel at peralex.com
Wed Oct 3 22:49:15 PDT 2012
On 2012-10-03 22:03, Stephan Bergmann wrote:
>> places. The commit seems to have caused some test failures and
>> crashes. I reverted it for now.
>
> ...which only goes to show what a horrible mess C++ is in practice.
> bool is rather special, but you easily forget to consider all the
> consequences of that. Turns out that code like
> aBuf.append( pElementType->pTypeName );
> (typelib_static_sequence_type_init,
> cppu/source/typelib/static_types.cxx), where pElementType->pTypeName
> is of type rtl_uString*, now chooses for overload resolution the
> standard boolean conversion from rtl_uString* to bool (yielding true,
> so appending "true" to aBuf) rather than the user-defined conversion
> by constructor from rtl_uString* to rtl::OUString.
Can that be fixed by adding an
OUStringBuffer::append( rtl_uString* )
method, which does the necessary conversion internally?
Disclaimer: http://www.peralex.com/disclaimer.html
More information about the LibreOffice
mailing list