Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qstdlibdetection.h
Go to the documentation of this file.
1
// Copyright (C) 2025 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
if
0
5
#
pragma
qt_class
(
QtStdLibDetection
)
6
#
pragma
qt_sync_skip_header_check
7
#
pragma
qt_sync_stop_processing
8
#
endif
9
10
#
ifndef
QSTDLIBDETECTION_H
11
#
define
QSTDLIBDETECTION_H
12
13
#
include
<
QtCore
/
qtconfiginclude
.
h
>
14
15
#
ifdef
__cplusplus
16
17
/* If <version> exists, qtconfiginclude.h will have included it. */
18
/* If not, we need to include _something_, and <utility> is included by qcompilerdetection.h, too */
19
#
if
!
__has_include
(
<
version
>
)
20
#
include
<
utility
>
21
#
endif
22
23
/*
24
The std lib, must be one of: (Q_STL_x)
25
26
LIBCPP - libc++ (shipped with Clang, e.g.)
27
LIBSTDCPP - libstdc++ (shipped with GCC, e.g.)
28
MSSTL - Microsoft STL
29
DINKUMWARE - Dinkumware (shipped with QNX, VxWorks, Integrity, origin of MSSTL)
30
STLPORT - STLport (merged with SGI)
31
SGI - The original STL
32
ROGUEWAVE - RogueWave ((used to be) popular on ARM?)
33
34
Not included:
35
EASTL - EASTL (this is not a drop-in STL, e.g. it doesn't have <vector>-style headers)
36
37
Should be sorted most to least authoritative.
38
*/
39
40
#
if
defined
(
_LIBCPP_VERSION
)
/* libc++ */
41
#
define
Q_STL_LIBCPP
42
#
elif
defined
(
_GLIBCXX_RELEASE
)
/* libstdc++ */
43
#
define
Q_STL_LIBSTDCPP
44
#
elif
defined
(
_MSVC_STL_VERSION
)
/* MSSTL (must be before Dinkumware) */
45
#
define
Q_STL_MSSTL
46
#
elif
defined
(
_YVALS
)
||
defined
(
_CPPLIB_VER
)
/* Dinkumware */
47
#
define
Q_STL_DINKUMWARE
48
#
elif
defined
(
_STLPORT_VERSION
)
/* STLport, cf. _stlport_version.h */
49
#
define
Q_STL_STLPORT
50
#
elif
defined
(
__SGI_STL
)
/* must be after STLport, which mimics as SGI STL */
51
#
define
Q_STL_SGI
52
#
elif
defined
(
_RWSTD_VER
)
/* RogueWave, at least as contributed to Apache stdcxx, cf. rw/_config.h */
53
#
define
Q_STL_ROGUEWAVE
54
#
else
55
#
error
Unknown
std
library
implementation
,
please
file
a
report
at
bugreports
.
qt
.
io
.
56
#
endif
57
58
#
endif
// __cplusplus
59
60
#
endif
// QSTDLIBDETECTION_H
__has_include
#define __has_include(x)
Definition
qcompilerdetection.h:456
qtbase
src
corelib
global
qstdlibdetection.h
Generated on
for Qt by
1.14.0