Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-13 09:06:17

0001 // Copyright (C) 2025 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 
0004 #if 0
0005 #pragma qt_class(QtStdLibDetection)
0006 #pragma qt_sync_skip_header_check
0007 #pragma qt_sync_stop_processing
0008 #endif
0009 
0010 #ifndef QSTDLIBDETECTION_H
0011 #define QSTDLIBDETECTION_H
0012 
0013 #include <QtCore/qtconfiginclude.h>
0014 
0015 #ifdef __cplusplus
0016 
0017 /* If <version> exists, qtconfiginclude.h will have included it. */
0018 /* If not, we need to include _something_, and <utility> is included by qcompilerdetection.h, too */
0019 #if !__has_include(<version>)
0020 #  include <utility>
0021 #endif
0022 
0023 /*
0024    The std lib, must be one of: (Q_STL_x)
0025 
0026      LIBCPP       - libc++ (shipped with Clang, e.g.)
0027      LIBSTDCPP    - libstdc++ (shipped with GCC, e.g.)
0028      MSSTL        - Microsoft STL
0029      DINKUMWARE   - Dinkumware (shipped with QNX, VxWorks, Integrity, origin of MSSTL)
0030      STLPORT      - STLport (merged with SGI)
0031      SGI          - The original STL
0032      ROGUEWAVE    - RogueWave ((used to be) popular on ARM?)
0033 
0034    Not included:
0035      EASTL        - EASTL (this is not a drop-in STL, e.g. it doesn't have <vector>-style headers)
0036 
0037    Should be sorted most to least authoritative.
0038 */
0039 
0040 #if defined(_LIBCPP_VERSION) /* libc++ */
0041 #  define Q_STL_LIBCPP
0042 #elif defined(_GLIBCXX_RELEASE) /* libstdc++ */
0043 #  define Q_STL_LIBSTDCPP
0044 #elif defined(_MSVC_STL_VERSION) /* MSSTL (must be before Dinkumware) */
0045 #  define Q_STL_MSSTL
0046 #elif defined(_YVALS) || defined(_CPPLIB_VER) /* Dinkumware */
0047 #  define Q_STL_DINKUMWARE
0048 #elif defined(_STLPORT_VERSION) /* STLport, cf. _stlport_version.h */
0049 #  define Q_STL_STLPORT
0050 #elif defined(__SGI_STL) /* must be after STLport, which mimics as SGI STL */
0051 #  define Q_STL_SGI
0052 #elif defined(_RWSTD_VER) /* RogueWave, at least as contributed to Apache stdcxx, cf. rw/_config.h */
0053 #  define Q_STL_ROGUEWAVE
0054 #else
0055 #  error Unknown std library implementation, please file a report at bugreports.qt.io.
0056 #endif
0057 
0058 #endif // __cplusplus
0059 
0060 #endif // QSTDLIBDETECTION_H