BSI PD ISO/IEC TS 19568:2017
$215.11
Programming languages. C++ extensions for library fundamentals
Published By | Publication Date | Number of Pages |
BSI | 2017 | 128 |
[general.scope]
This technical specification describes extensions to the C++ Standard Library (1.2). These extensions are classes and functions that are likely to be used widely within a program and/or on the interface boundaries between libraries written by different organizations.
This technical specification is non-normative. Some of the library components in this technical specification may be considered for standardization in a future version of C++, but they are not currently part of any C++ standard. Some of the components in this technical specification may never be standardized, and others may be standardized in a substantially changed form.
The goal of this technical specification is to build more widespread existing practice for an expanded C++ standard library. It gives advice on extensions to those vendors who wish to provide them.
PDF Catalog
PDF Pages | PDF Title |
---|---|
5 | Contents |
9 | Foreword |
10 | Blank Page |
11 | 1 General 1.1 Scope 1.2 Normative references 1.3 Namespaces, headers, and modifications to standard classes |
12 | 1.4 Terms and definitions 1.5 Future plans (Informative) |
13 | 1.6 Feature-testing recommendations (Informative) |
15 | 2 Modifications to the C++ Standard Library 2.1 Uses-allocator construction |
16 | 3 General utilities library 3.1 Utility components 3.1.1 Header synopsis 3.1.2 Class erased_type 3.2 Tuples 3.2.1 Header synopsis |
17 | 3.2.2 Calling a function with a tuple of arguments 3.3 Metaprogramming and type traits 3.3.1 Header synopsis |
21 | 3.3.2 Other type transformations |
22 | 3.3.3 Logical operator traits |
23 | 3.3.4 Detection idiom |
24 | 3.4 Compile-time rational arithmetic 3.4.1 Header synopsis |
25 | 3.5 Time utilities 3.5.1 Header synopsis 3.6 System error support 3.6.1 Header synopsis 3.7 Class template propagate_const 3.7.1 Class template propagate_const general |
26 | 3.7.2 Header synopsis |
28 | 3.7.3 propagate_const requirements on T 3.7.3.1 propagate_const requirements on class type T |
29 | 3.7.4 propagate_const constructors 3.7.5 propagate_const assignment |
30 | 3.7.6 propagate_const const observers 3.7.7 propagate_const non-const observers |
31 | 3.7.8 propagate_const modifiers 3.7.9 propagate_const relational operators |
33 | 3.7.10 propagate_const specialized algorithms 3.7.11 propagate_const underlying pointer access 3.7.12 propagate_const hash support 3.7.13 propagate_const comparison function objects |
35 | 4 Function objects 4.1 Header synopsis |
36 | 4.2 Class template function |
38 | 4.2.1 function construct/copy/destroy |
39 | 4.2.2 function modifiers 4.3 Searchers 4.3.1 Class template default_searcher |
40 | 4.3.1.1 default_searcher creation functions 4.3.2 Class template boyer_moore_searcher |
41 | 4.3.2.1 boyer_moore_searcher creation functions 4.3.3 Class template boyer_moore_horspool_searcher |
42 | 4.3.3.1 boyer_moore_horspool_searcher creation functions |
43 | 4.4 Function template not_fn |
44 | 5 Optional objects 5.1 In general 5.2 Header synopsis |
45 | 5.3 optional for object types |
47 | 5.3.1 Constructors |
49 | 5.3.2 Destructor |
50 | 5.3.3 Assignment |
53 | 5.3.4 Swap 5.3.5 Observers |
54 | 5.4 In-place construction 5.5 No-value state indicator |
55 | 5.6 Class bad_optional_access 5.7 Relational operators 5.8 Comparison with nullopt |
56 | 5.9 Comparison with T |
57 | 5.10 Specialized algorithms 5.11 Hash support |
58 | 6 Class any 6.1 Header synopsis |
59 | 6.2 Class bad_any_cast 6.3 Class any 6.3.1 any construct/destruct |
60 | 6.3.2 any assignments |
61 | 6.3.3 any modifiers 6.3.4 any observers 6.4 Non-member functions |
64 | 7 string_view 7.1 Header synopsis |
65 | 7.2 Class template basic_string_view |
67 | 7.3 basic_string_view constructors and assignment operators |
68 | 7.4 basic_string_view iterator support |
69 | 7.5 basic_string_view capacity 7.6 basic_string_view element access |
70 | 7.7 basic_string_view modifiers 7.8 basic_string_view string operations |
72 | 7.8.1 Searching basic_string_view |
73 | 7.9 basic_string_view non-member comparison functions |
74 | 7.10 Inserters and extractors |
75 | 7.11 Hash support |
76 | 8 Memory 8.1 Header synopsis |
79 | 8.2 Shared-ownership pointers 8.2.1 Class template shared_ptr |
82 | 8.2.1.1 shared_ptr constructors |
84 | 8.2.1.2 shared_ptr observers |
85 | 8.2.1.3 shared_ptr casts 8.2.1.4 shared_ptr hash support 8.2.2 Class template weak_ptr |
86 | 8.2.2.1 weak_ptr constructors |
87 | 8.3 Type-erased allocator 8.4 Header synopsis |
88 | 8.5 Class memory_resource 8.5.1 Class memory_resource overview |
89 | 8.5.2 memory_resource public member functions 8.5.3 memory_resource protected virtual member functions |
90 | 8.5.4 memory_resource equality 8.6 Class template polymorphic_allocator 8.6.1 Class template polymorphic_allocator overview |
91 | 8.6.2 polymorphic_allocator constructors 8.6.3 polymorphic_allocator member functions |
93 | 8.6.4 polymorphic_allocator equality 8.7 template alias resource_adaptor 8.7.1 resource_adaptor |
94 | 8.7.2 resource_adaptor_imp constructors 8.7.3 resource_adaptor_imp member functions |
95 | 8.8 Access to program-wide memory_resource objects 8.9 Pool resource classes 8.9.1 Classes synchronized_pool_resource and unsynchronized_pool_resource |
97 | 8.9.2 pool_options data members |
98 | 8.9.3 pool resource constructors and destructors 8.9.4 pool resource members |
99 | 8.10 Class monotonic_buffer_resource 8.10.1 Class monotonic_buffer_resource overview |
100 | 8.10.2 monotonic_buffer_resource constructor and destructor |
101 | 8.10.3 monotonic_buffer_resource members 8.11 Alias templates using polymorphic memory resources 8.11.1 Header synopsis |
102 | 8.11.2 Header synopsis 8.11.3 Header synopsis 8.11.4 Header synopsis |
103 | 8.11.5 Header synopsis 8.11.6 Header synopsis |
104 | 8.11.7 Header synopsis 8.11.8 Header synopsis |
105 | 8.11.9 Header synopsis 8.11.10 Header synopsis |
106 | 8.12 Non-owning pointers 8.12.1 Class template observer_ptr overview |
107 | 8.12.2 observer_ptr constructors 8.12.3 observer_ptr observers 8.12.4 observer_ptr conversions 8.12.5 observer_ptr modifiers |
108 | 8.12.6 observer_ptr specialized algorithms |
109 | 8.12.7 observer_ptr hash support |
110 | 9 Containers 9.1 Uniform container erasure 9.1.1 Header synopsis |
111 | 9.1.2 Function template erase_if |
112 | 9.1.3 Function template erase 9.2 Class template array 9.2.1 Header synopsis |
113 | 9.2.2 Array creation functions |
114 | 10 Iterators library 10.1 Header synopsis 10.2 Class template ostream_joiner |
115 | 10.2.1 ostream_joiner constructor 10.2.2 ostream_joiner operations 10.2.3 ostream_joiner creation function |
116 | 11 Futures 11.1 Header synopsis 11.2 Class template promise |
117 | 11.3 Class template packaged_task |
119 | 12 Algorithms library 12.1 Header synopsis 12.2 Search |
120 | 12.3 Sampling 12.4 Shuffle |
121 | 13 Numerics library 13.1 Generalized numeric operations 13.1.1 Header synopsis 13.1.2 Greatest common divisor 13.1.3 Least common multiple |
122 | 13.2 Random number generation 13.2.1 Header synopsis 13.2.2 Utilities 13.2.2.1 Function template randint |
123 | 14 Reflection library 14.1 Class source_location 14.1.1 Header synopsis |
124 | 14.1.2 source_location creation 14.1.3 source_location field access |