C++17
From cppreference.net
<
cpp
C++17 ist eine Hauptversion, die der Nebenversion C++14 folgt und neue Sprach- und Bibliotheksfunktionen einführt. Der Standard wurde im Dezember 2017 veröffentlicht.
Die folgenden Funktionen wurden in C++17 zusammengeführt:
- Vom File System TS : die Filesystem-Bibliothek .
- Vom Library fundamentals v1 TS : Funktionen, einschließlich std::any , std::optional , std::string_view , std::apply , polymorphe Allokatoren , Searcher .
- Vom Library fundamentals v2 TS : std::void_t , std::conjunction , std::disjunction , std::negation , std::not_fn , std::gcd , std::lcm .
-
Vom
Parallelism v1 TS
: Funktionen, einschließlich
Ausführungsrichtlinien
,
std::reduce
,
std::inclusive_scan
,
std::exclusive_scan
, aber ohne
exception_list. - Vom Mathematical special functions IS : mathematische Spezialfunktionen .
- Von C11: std::aligned_alloc , std::timespec_get .
| Dieser Abschnitt ist unvollständig |
Inhaltsverzeichnis |
Veraltete Funktionen
Entfernte Funktionen
- std::auto_ptr ,
- veraltete Funktionsobjekte ,
- std::random_shuffle ,
- std::unexpected ,
-
die
veralteten
iostream-Aliase , - Trigraphen ,
- das register -Schlüsselwort,
-
bool-Inkrement , - dynamische Ausnahmespezifikation
Veraltete Funktionen
- std::iterator ,
- std::raw_storage_iterator ,
- std::get_temporary_buffer ,
- std::is_literal_type ,
- std::result_of ,
- alle <codecvt>
Neue Sprachfunktionen
-
u8Zeichenliteral - machte noexcept Teil des Typsystems
- neue Auswertungsreihenfolge Regeln
- Lambda-Erfassung von * this
-
constexpr
- Compile-Zeit if constexpr
- constexpr lambda
-
Variablen
- inline-Variablen
- strukturierte Bindungen
- Initialisierer für if und switch
- garantierte Copy Elision
- Temporary Materialization
-
Templates
- Fold-Ausdrücke ( ... )
- Klassentemplate-Argumentableitung tuple t ( 4 , 3 , 2.5 )
-
Konstante
Template-Parameter
deklariert mit
auto
-
Namespaces
- vereinfachte verschachtelte Namespaces
-
using-Deklaration für mehrere Namen - Attribut-Namespaces müssen nicht wiederholt werden
-
neue
Attribute
:
-
[[ fallthrough ]] -
[[ maybe_unused ]] -
[[ nodiscard ]]
-
- __has_include
Neue Header
Neue Bibliotheksfunktionen
Hilfstypen
Speicherverwaltung
- Nicht initialisierte Speicher-Algorithmen
- weak_from_this
- std::pmr::memory_resource und std::polymorphic_allocator
- std::aligned_alloc
- Transparentes std::owner_less
- Array-Unterstützung für std::shared_ptr
- Allokierungsfunktionen mit expliziter Ausrichtung
Compile-Zeit-Programmierung
- std::byte
- std::conjunction / std::disjunction / std::negation
-
Typ-Merkmals
Variable Templates (
xxx _+v) - std::is_swappable
- std::is_invocable
- std::is_aggregate
- std::has_unique_object_representations
Algorithmen
- std::clamp
- Parallele Algorithmen und Ausführungsrichtlinien
- std::inclusive_scan
- std::exclusive_scan
- std::gcd
- std::lcm
- std::reduce
Iteratoren und Container
- map/set extract und map/set merge
- map/unordered_map try_emplace und insert_or_assign
- Kontinuierliche Iteratoren ( LegacyContiguousIterator )
- Nicht-Mitglied- std::size / std::empty / std::data
Numerik
Andere
- Cache-Line-Interface
- std::launder
- std::uncaught_exceptions
- std::to_chars / std::from_chars
- std::atomic<T>::is_always_lock_free
- std::scoped_lock
- std::timespec_get
- Rundungsfunktionen für std::chrono::duration und std::chrono::time_point
Fehlerberichte
Compiler-Unterstützung
C++17 Kernsprachfunktionen
|
C++17-Funktion
|
Dokument(e)
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
Embarcadero C++ Builder
|
IBM Open XL C++ for AIX
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DR11: Neue auto Regeln für Direct-List-Initialization | N3922 | 5 | 3.8 | 19.0 (2015)* | Ja | 4.10.1 | 17.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| typename in einer Template-Template-Parameter | N4051 | 5 | 3.5 | 19.0 (2015)* | Ja | 4.10.1 | 17.0 | 17.7 | Ja* | 11.0 | 10.3 | 17.1.0 | |
| Entfernung von trigraphs | N4086 | 5 | 3.5 | 16.0* | Ja | 5.0 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | ||
| Verschachtelte Namespace Definition | N4230 | 6 | 3.6 | 19.0 (Update 3)* | Ja | 4.12 | 17.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| static_assert ohne Nachricht ( FTM ) * | N3928 | 6 | 2.5 | 19.10* | Ja | 4.12 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Attribute für Namespaces und Enumeratoren ( FTM ) * ( FTM ) * | N4266 |
4.9 (teilweise)*
6 |
3.6 | 19.0 (2015)* | Ja | 4.11 | 17.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
u8
Zeichenliterale
|
N4267 | 6 | 3.6 | 19.0 (2015)* | Ja | 4.11 | 17.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Erlaubt konstante Auswertung für alle konstanten Template-Argumente ( FTM ) * | N4268 | 6 | 3.6 | 19.12* | Ja | 5.0 | 19.0.1 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Unäre Fold-Ausdrücke und leere Parameterpacks | P0036R0 | 6 | 3.9 | 19.12* | Ja | 4.14 | 19.0 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Entfernung der veralteten Verwendung des register Schlüsselworts | P0001R1 | 7 | 3.8 | 19.11* | Ja | 4.13 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Veralteten Operator entfernen operator ++ ( bool ) | P0002R1 | 7 | 3.8 | 19.11* | Ja | 4.13 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Machen Sie Ausnahmespezifikationen Teil des Typsystems ( FTM ) * | P0012R1 | 7 | 4 | 19.12* | Ja | 4.14 | 19.0 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| __has_include in Präprozessor-Bedingungen | P0061R1 | 5 | Ja | 19.11* | Ja | 4.13 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| DR11: Neue Spezifikation für vererbende Konstruktoren ( DR1941 et al) ( FTM ) * | P0136R1 | 7 | 3.9 | 19.14* * | Ja | 6.1 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | ||
| Aggregate-Klassen mit Basisklassen ( FTM ) * | P0017R1 | 7 | 3.9 | 19.14* | Ja | 5.0 | 19.0.1 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Fold-Ausdrücke ( FTM ) * | N4295 | 6 | 3.6 | 19.12* | Ja | 4.14 | 19.0 | 18.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Lambda-Erfassung von * this ( FTM ) * | P0018R3 | 7 | 3.9 | 19.11* | Ja | 4.14 | 19.0 | 18.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Direkte Listeninitialisierung von Enumerationen | P0138R2 | 7 | 3.9 | 19.11* | Ja | 4.14 | 18.0 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
constexpr
Lambda-Ausdrücke
(
FTM
)
*
|
P0170R1 | 7 | 5 | 19.11* | Ja | 4.14 | 19.0 | 18.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Unterschiedliche begin- und end-Typen in bereichsbasierter for-Schleife ( FTM ) * | P0184R0 | 6 | 3.9 | 19.10* | Ja | 4.12 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
[[
fallthrough
]]
Attribut
|
P0188R1 | 7 | 3.9 | 19.10* | Ja | 4.13 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
[[
nodiscard
]]
Attribut
|
P0189R1 | 7 | 3.9 | 19.11* | Ja | 4.13 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
[[
maybe_unused
]]
Attribut
|
P0212R1 | 7 | 3.9 | 19.11* | Ja | 4.13 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Hexadezimale Gleitkomma-Literale ( FTM ) * | P0245R1 | 3.0 | Ja | 19.11* | Ja | 4.13 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Verwendung von Attribut-Namespaces ohne Wiederholung | P0028R4 | 7 | 3.9 | 19.11* | Ja | 4.13 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Dynamische Speicherallokation für überausgerichtete Daten ( FTM ) * | P0035R4 | 7 | 4 | 19.12* | 10.0.0* | 4.14 | 19.0 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Konstante Template-Parameter mit auto -Typ ( FTM ) * | P0127R2 | 7 | 4 | 19.14* | Ja | 5.0 | 19.0.1 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Garantierte copy elision ( FTM ) * | P0135R1 | 7 | 4 | 19.13* | Ja | 5.0 | 19.0.1 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Ersetzung von Klassenobjekten mit Referenzmitgliedern | P0137R1 | 7 | 6 | 19.14* | Ja | 5.0 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | ||
| Strengere Ausdrucksauswertungsreihenfolge | P0145R3 | 7 | 4 | 19.14* | Ja | 5.0 | 19.0.1 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Strukturierte Bindungen ( FTM ) * | P0217R3 | 7 | 4 | 19.11* | Ja | 4.14 | 19.0 | 18.1 | 11.0* | 11.0 | 10.3 | 17.1.0 | |
| Unbekannte Attribute ignorieren attributes | P0283R2 | Ja | 3.9 | 19.0 (2015)* | Ja | 4.13 | 18.0 | 17.7 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| constexpr-if Anweisungen ( FTM ) * | P0292R2 | 7 | 3.9 | 19.11* | Ja | 4.14 | 19.0 | 18.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Init-Anweisungen für if und switch | P0305R1 | 7 | 3.9 | 19.11* | Ja | 4.14 | 18.0 | 18.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Inline-Variablen ( FTM ) * | P0386R2 | 7 | 3.9 | 19.12* | Ja | 4.14 | 19.0 | 18.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Entfernung von dynamischen Exception-Spezifikationen | P0003R5 | 7 | 4 | 19.12* | Ja | 4.14 | 19.0 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Pack-Erweiterungen in using-Deklarationen ( FTM ) * | P0195R2 | 7 | 4 | 19.14* | Ja | 5.0 | 19.0 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| DR98: Abgleich von Template-Template-Argumenten schließt kompatible Templates aus ( FTM ) * | P0522R0 | 7 | 4 | 19.12* | Ja | 5.0 | 19.0.1 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
| Klassentemplate-Argumentdeduktion ( FTM ) * | P0091R3 | 7 | 5 | 19.14* | Ja | 5.0 | 19.0.1 | 19.1 | 11.0 | 11.0 | 10.3 | 17.1.0 | |
|
C++17-Funktionalität |
Dokument(e) |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
Embarcadero C++ Builder
|
IBM Open XL C++ for AIX
|
C++17-Bibliotheksfunktionen
|
C++17-Funktionalität
|
Paper(s)
|
GCC libstdc++
|
Clang libc++
|
MSVC STL
|
Apple Clang*
|
IBM Open XL C/C++ for AIX*
|
Intel Parallel STL
|
Embarcadero C++ Builder*
|
|
|---|---|---|---|---|---|---|---|---|---|
| std::void_t ( FTM ) * | N3911 | 6.1 | 3.6 | 19.0 (2015)* | Ja | 17.1.0 | N/V | 10.3 | |
| std::uncaught_exceptions() ( FTM ) * | N4259 | 6.1 | 3.7 | 19.0 (2015)* | Ja | 17.1.0 | N/V | 10.3 | |
| std::size() , std::empty() und std::data() ( FTM ) * | N4280 | 6 | 3.6 | 19.0 (2015)* | Ja | 17.1.0 | N/A | 10.3 | |
| std::allocator_traits::is_always_equal , noexcept Bereinigungen ( FTM ) * | N4258 | 6.1 | 3.7 | 19.0 (2015)* | 17.1.0 | N/A | |||
| std::invoke ( FTM ) * | N4169 | 6.1 | 3.7 | 19.0 (2015)* | Ja | 17.1.0 | N/V | ||
| std::map::try_emplace , std::map::insert_or_assign ( FTM ) * | N4279 | 6.1 | 3.7 | 19.0 (2015)* | Ja | 17.1.0 | N/V | ||
| std::unordered_map::try_emplace , std::unordered_map::insert_or_assign ( FTM ) * | N4279 | 6.1 | 3.7 | 19.0 (2015)* | Ja | 17.1.0 | N/V | ||
| Verbesserung von std::pair und std::tuple | N4387 | 6.1 | 4 | 19.0 (Update 2)* | Ja | 17.1.0 | N/A | 10.3 | |
| std::bool_constant ( FTM ) * | N4389 | 6.1 | 3.7 | 19.0 (2015)* | Ja | 17.1.0 | N/V | 10.3 | |
| std::shared_mutex (ungetimed) ( FTM ) * | N4508 | 6 | 3.7 | 19.0 (Update 2)* | Ja | 17.1.0 | N/V | 10.3 | |
| Minimale Unterstützung für unvollständige Typen für std::forward_list , std::list und std::vector ( FTM ) * | N4510 | 3.0 | 3.6 | 18.0* | Ja | 17.1.0 | N/A | ||
| Typ-Traits Variablen-Templates ( FTM ) * | P0006R0 | 7.1 | 3.8 | 19.0 (Update 2)* | Ja | 17.1.0 | N/A | 10.3 | |
| Logische Operatoren-Typ-Traits ( FTM ) * | P0013R1 | 6.1 | 3.8 | 19.0 (Update 2)* | Ja | 17.1.0 | N/A | 10.3 | |
| std::as_const ( FTM ) * | P0007R1 | 7.1 | 3.8 | 19.0 (Update 2)* | Ja | 17.1.0 | N/A | ||
| Rundungsfunktionen für std::chrono::duration und std::chrono::time_point ( FTM ) * | P0092R1 | 7.1 | 3.8 | 19.0 (Update 2)* | Ja | 17.1.0 | N/A | ||
| Transparente std::owner_less ( std::owner_less<void> ) ( FTM ) * | P0074R0 | 7.1 | 3.8 | 19.0 (Update 2)* | Ja | 17.1.0 | N/A | ||
| std::not_fn ( FTM ) * |
P0005R4
P0358R1 |
7.1 | 3.9 | 19.12* | Ja | 17.1.0 | N/A | 10.3 | |
| Parallele Algorithmen und Ausführungsrichtlinien ( FTM ) * ( FTM ) * | P0024R2 | 9* |
17
(teilweise)* |
19.14* | 18.0* | ||||
| std::clamp() ( FTM ) * | P0025R1 | 7 | 3.9 | 19.0 (Update 3)* | 10.0.0* | 17.1.0 | N/A | 10.3 | |
| (nothrow-)swappable Eigenschaften ( FTM ) * | P0185R1 | 7.1* | 3.9 | 19.0 (Update 3)* | 10.0.0* | 17.1.0 | N/A | 10.3 | |
| Polymorphe Speicherressourcen ( FTM ) * | P0220R1 | 9.1 | 16 | 19.13* | 15.0.0* | 17.1.1 | N/A | 10.3 | |
| std::apply ( FTM ) * | P0220R1 | 7.1 | 16 | 19.13* | Ja | 17.1.0 | Nicht verfügbar | ||
| Searcher ( FTM ) * | P0220R1 | 7.1 | 16 | 19.13* | Ja | 17.1.0 | N/V | ||
| std::sample ( FTM ) * | P0220R1 | 7.1 | 16 | 19.13* | Ja | 17.1.0 | N/V | ||
| Mathematische Sonderfunktionen ( FTM ) * | P0226R1 | 7 | 19.14* | 17.1.1 | N/A | 10.3 | |||
| constexpr std::addressof ( FTM ) * | LWG2296 | 7.1 | Ja | 19.0 (Update 3)* | 17.1.0 | N/A | |||
| constexpr für std::reverse_iterator , std::move_iterator , std::array und Bereichszugriff ( FTM ) * | P0031R0 | 7.1 | 4 | 19.11* | Ja | 17.1.0 | N/A | ||
| constexpr std:: atomic < T > :: is_always_lock_free ( FTM ) * | P0152R1 | 7.1 | 3.9 | 19.11* | Ja | 17.1.0 | N/V | ||
| std::enable_shared_from_this::weak_from_this ( FTM ) * | P0033R1 | 7.1 | 3.9 | 19.12* | Ja | 17.1.0 | N/V | ||
| 3-Argument-Überladung von std::hypot ( FTM ) * | P0030R1 | 7.1 | 3.9 | 19.14* | Ja | 17.1.0 | N/A | ||
| std::byte ( FTM ) * | P0298R3 | 7 | 5 | 19.11* | Ja | 17.1.1 | N/V | 10.3 | |
| std::string_view ( FTM ) * |
N3921
P0220R1 P0254R2 P0403R1 |
7.1 | 4 |
19.10*
(teilweise)*
19.11* * |
10.0.0* | 17.1.0 | N/V | 10.3 | |
| std::any ( FTM ) * |
P0220R1
P0032R3 |
7.1 | 4 | 19.10* | 10.0.0* | 17.1.0 | N/A | 10.3 | |
| std::optional ( FTM ) * | P0220R1 | 7.1 | 4 | 19.10* | 10.0.0* | 17.1.0 | N/A | 10.3 | |
| Hauptteil der C11-Standardbibliothek | P0063R3 | 9.1 | 7 |
19.0 (2015)*
(teilweise)* |
10.0.0* | 17.1.1 | N/A | ||
| Splicing Maps und Sets ( FTM ) * | P0083R3 | 7 | 8 | 19.12* | 10.0.0* | 17.1.1 | N/A | ||
| Rückgabetyp der emplace *-Funktionen einiger Container wurde von void auf Referenz geändert | P0084R2 | 7.1 | 4.0 | 19.11* | Ja | 17.1.0 | N/A | ||
| std::variant ( FTM ) * | P0088R3 | 7.1 | 4 | 19.10* | 10.0.0* | 17.1.0 | N/A | 10.3 | |
| std::make_from_tuple() ( FTM ) * | P0209R2 | 7.1 | 3.9 | 19.10* | Ja | 17.1.0 | N/V | 10.3 | |
| std::has_unique_object_representations ( FTM ) * | P0258R2 | 7.1 | 6 | 19.11* | Ja | 17.1.1 | N/V | 10.3 | |
| std::gcd() und std::lcm() ( FTM ) * | P0295R0 | 7 | 4 | 19.11* | Ja | 17.1.0 | N/A | 10.3 | |
| CWG Issue 1776 : Ersetzung von Klassenobjekten mit Referenzmembern ( std::launder ) ( FTM ) * | P0137R1 | 7.1 | 6 | 19.14* | Ja | 17.1.0 | N/A | ||
| Erweiterung der Speicherverwaltungswerkzeuge ( FTM ) * | P0040R3 | 7.1 | 4 | 19.11* | 17.1.0 | N/A | |||
| shared_ptr::weak_type ( FTM ) * | P0163R0 | 7.1 | 3.9 | 19.10* | Ja | 17.1.0 | N/V | ||
| Elementare Zeichenkettenumwandlungen : std:: to_chars / std:: from_chars ( FTM ) * | P0067R5 |
8*
11 |
7*
14* 20* |
19.14*
*
19.24* |
10.0.0* * | 17.1.1* | N/A | 10.3* | |
| std::shared_ptr und std::weak_ptr mit Array-Unterstützung | P0414R2 | 7 | 11 | 19.12* | 12.0.0* | 17.1.1 | N/A | 10.3 | |
| Constexpr für alle Memberfunktionen von std::chrono::duration und std::chrono::time_point ( FTM ) * | P0505R0 | 7.1 | 4 | 19.11* | Ja | 17.1.1 | N/A | ||
| std:: shared_ptr < T [ ] > ( FTM ) * | P0497R0 | 7.1 | 11 | 19.12* | 17.1.1 | N/A | |||
| constexpr std::char_traits ( FTM ) * | P0426R1 | 8.1 | 4 | 19.14* | Ja | 17.1.1 | N/V | ||
| Dateisystem-Bibliothek ( std::filesystem ) ( FTM ) * |
P0218R1
P0219R1 |
8 | 7 | 19.14* | 11.0.0* | 17.1.1 | N/A | 10.3 | |
| Hardware-Interferenzgröße ( FTM ) * | P0154R1 | 12.1 |
15 (teilweise)*
19 |
19.11* | N/A | 10.3 | |||
| std::scoped_lock ( FTM ) * | P0156R2 | 7 | 5 | 19.11* | Ja | 17.1.1 | N/V | 10.3 | |
| std::is_aggregate ( FTM ) * | LWG2911 | 7 | 5 | 19.15* | Ja | 17.1.1 | N/V | 10.3 | |
| std::is_invocable , std::invoke_result ( FTM ) * | P0604R0 | 7.1 | Ja | 19.11* | Ja | 17.1.1 | N/A | ||
| DR17: std::hash<std::filesystem::path> | LWG3657 | 11.4 | 17 | 19.32* | N/A | ||||
|
C++17-Funktionalität |
Paper(s) |
GCC libstdc++
|
Clang libc++
|
MSVC STL
|
Apple Clang*
|
IBM Open XL C/C++ for AIX*
|
Intel Parallel STL
|
Embarcadero C++ Builder*
|
Hinweise
- Stand 20. November 2020 ist die neueste Version von Oracle Developer Studio 12.6 . Dessen Dokumentation erwähnt C++17 nicht.
- Der Cray-Compiler könnte Unterstützung für einige Funktionen bereits vor Version 11.0 bieten. Diese Version markiert den Zeitpunkt, zu der er zu einem Ableger von Clang wurde und dabei die gesamte Sprachfunktionsunterstützung des Basiscompilers übernahm. Siehe Cray/HPE-Dokument S-2179 .
*
- fahren Sie mit der Maus über eine mit dem Stern markierte Zelle
*
, um zusätzliche Pop-up-Hinweise zu sehen.
DR
nn
- die Zahl
nn
nach "DR" bezeichnet die C++-Revision, auf die der Defektbericht angewendet wird, z.B. DR20 → C++20.
Externe Links
| 1. | C++17 - Wikipedia |
| 2. | Funktionsfähige C++17-Beispiele |