[Development] QtCS: Notes from Modern C++ session

Matthew Woehlke mw_triad at users.sourceforge.net
Fri Jun 12 18:40:40 CEST 2015


On 2015-06-12 13:02, Marc Mutz wrote:
> On Friday 12 June 2015 16:49:38 Matthew Woehlke wrote:
>> On 2015-06-12 04:17, Marc Mutz wrote:
>>> On Friday 12 June 2015 08:08:51 André Somers wrote:
>>>> For now, don’t put std lib ABI into Qt ABI, except for nulltpr_t.
>>>
>>> Too late: QException inherits std::exception (for a looong time already),
>>> and  by virtue of various exported subclasses of QVector and QList, we
>>> export ABI that contains std::vector and std::list (toStdList(),
>>> toStdVector()). We probably also export ABI using std::string, because
>>> I'm sure someone somewhere has inherited an exported class from
>>> QString...
>>
>> Besides being inline (template, dontcha know), isn't there an option to
>> disable those? (Maybe not std::exception one, but at least the Qt <->
>> STL container conversions?)
> 
> No, they are members. If the conversion was a free function, exporting QVector 
> or QList wouldn't export the STL types. We can't disable them, either, as 
> they're already exported. It would also be source-incompatible to do so.

Oh, right. Sorry, I missed the "exported subclasses" part. Yes, with
exported instantiations, you can't magically make the symbols go away.
(Though I suppose users that disable STL would at least not be able to
call them, since the declarations would be missing?)

-- 
Matthew




More information about the Development mailing list