[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