[Development] Question about QCoreApplicationData::*_libpaths

Marc Mutz marc.mutz at kdab.com
Thu Jan 7 18:08:47 CET 2016


On Thursday 07 January 2016 15:05:37 Иван Комиссаров wrote:
> Still, what about policy not to use std:: classes in Qt API?
> Are optional inplementations compatible with each other like std::pair ot
> not?

Whether by design or accident, apps can currently use a different C++ standard 
library than the one Qt was built with.

I believe the only use-case of this is OS X, with libc++ and libstdc++.

At some point, this feature became part of the Qt BC guarantees. This means 
that except for very few exceptions like std::exception (no pun intended), 
std:: types cannot form part of the Qt ABI (not API, ABI), because even if the 
layout of a std::pair is defined by the standard, the std::pair from one impl 
is called std::_1::pair, or something like that (inline namespaces), so the 
symbol names would clash.

I believe that is not a valid use-case of binary compatibility to support 
different std impls with the same binary, because it precisely means we cannot 
use, say pair, shared_ptr, or function in the Qt API.

But for now, it's like it is.

-- 
Marc Mutz <marc.mutz at kdab.com> | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
Tel: +49-30-521325470
KDAB - The Qt Experts



More information about the Development mailing list