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 <[email protected]> | Senior Software Engineer KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company Tel: +49-30-521325470 KDAB - The Qt Experts _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
