1 <section xmlns="http://docbook.org/ns/docbook" version="5.0"
2 xml:id="status.iso.2011" xreflabel="Status C++ 2011">
3 <?dbhtml filename="status_iso_cxx2011.html"?>
5 <info><title>C++ 2011</title>
7 <keyword>ISO C++</keyword>
8 <keyword>2011</keyword>
13 <anchor xml:id="status.iso.200x" /> <!-- preserve links to old section ID -->
14 This table is based on the table of contents of ISO/IEC
15 JTC1 SC22 WG21 Doc No: N3290 Date: 2011-04-11
16 Final Draft International Standard, Standard for Programming Language C++
20 In this implementation <literal>-std=gnu++11</literal> or
21 <literal>-std=c++11</literal> flags must be used to enable language
23 features. See <link linkend="manual.intro.using.flags">dialect</link>
24 options. The pre-defined symbol
25 <constant>__cplusplus</constant> is used to check for the
26 presence of the required flag.
30 This page describes the C++11 support in mainline GCC SVN, not in any
34 <!-- Status is Yes or No, Broken/Partial-->
39 <?dbhtml bgcolor="#C8B0B0" ?>
41 <?dbhtml bgcolor="#B0B0B0" ?>
43 <table frame="all" xml:id="table.cxx11_status">
44 <title>C++ 2011 Implementation Status</title>
46 <tgroup cols="4" align="left" colsep="0" rowsep="1">
47 <colspec colname="c1"/>
48 <colspec colname="c2"/>
49 <colspec colname="c3"/>
50 <colspec colname="c4"/>
53 <entry>Section</entry>
54 <entry>Description</entry>
56 <entry>Comments</entry>
64 <emphasis>18</emphasis>
66 <entry namest="c2" nameend="c4" align="left">
67 <emphasis>Language support</emphasis>
73 <entry>General</entry>
78 <?dbhtml bgcolor="#B0B0B0" ?>
81 <entry>Partial</entry>
82 <entry>Missing offsetof</entry>
86 <entry>Implementation properties</entry>
93 <entry>Numeric Limits</entry>
98 <entry>18.3.2.3</entry>
99 <entry>Class template <code>numeric_limits</code></entry>
104 <entry>18.3.2.4</entry>
105 <entry><code>numeric_limits</code> members</entry>
110 <?dbhtml bgcolor="#C8B0B0" ?>
111 <entry>18.3.2.5</entry>
112 <entry><code>float_round_style</code></entry>
117 <?dbhtml bgcolor="#C8B0B0" ?>
118 <entry>18.3.2.6</entry>
119 <entry><code>float_denorm_style</code></entry>
124 <entry>18.3.2.7</entry>
125 <entry><code>numeric_limits</code> specializations</entry>
131 <entry>18.3.3</entry>
132 <entry>C Library</entry>
139 <entry>Integer types</entry>
144 <entry>18.4.1</entry>
145 <entry>Header <code><cstdint></code> synopsis</entry>
150 <?dbhtml bgcolor="#B0B0B0" ?>
152 <entry>Start and termination</entry>
153 <entry>Partial</entry>
154 <entry>C library dependency for quick_exit, at_quick_exit</entry>
158 <entry>Dynamic memory management</entry>
164 <entry>Type identification</entry>
169 <entry>18.7.1</entry>
170 <entry>Class type_info</entry>
175 <entry>18.7.2</entry>
176 <entry>Class bad_cast</entry>
181 <entry>18.7.3</entry>
182 <entry>Class bad_typeid</entry>
188 <entry>Exception handling</entry>
193 <entry>18.8.1</entry>
194 <entry>Class exception</entry>
199 <entry>18.8.2</entry>
200 <entry>Class bad_exception</entry>
205 <entry>18.8.3</entry>
206 <entry>Abnormal termination</entry>
211 <entry>18.8.4</entry>
212 <entry><code>uncaught_exception</code></entry>
217 <entry>18.8.5</entry>
218 <entry>Exception Propagation</entry>
223 <entry>18.8.6</entry>
224 <entry><code>nested_exception</code></entry>
230 <entry>Initializer lists</entry>
235 <entry>18.9.1</entry>
236 <entry>Initializer list constructors</entry>
241 <entry>18.9.2</entry>
242 <entry>Initializer list access</entry>
247 <entry>18.9.3</entry>
248 <entry>Initializer list range access</entry>
254 <entry>Other runtime support</entry>
260 <emphasis>19</emphasis>
262 <entry namest="c2" nameend="c4" align="left">
263 <emphasis>Diagnostics</emphasis>
268 <entry>General</entry>
273 <?dbhtml bgcolor="#B0B0B0" ?>
275 <entry>Exception classes</entry>
276 <entry>Partial</entry>
277 <entry>Missing <code>const char*</code> constructors.</entry>
281 <entry>Assertions</entry>
287 <entry>Error numbers</entry>
293 <entry>System error support</entry>
298 <entry>19.5.1</entry>
299 <entry>Class <code>error_category</code></entry>
304 <entry>19.5.2</entry>
305 <entry>Class <code>error_code</code></entry>
310 <entry>19.5.3</entry>
311 <entry>Class <code>error_condition</code></entry>
316 <entry>19.5.4</entry>
317 <entry>Comparison operators</entry>
322 <?dbhtml bgcolor="#B0B0B0" ?>
323 <entry>19.5.5</entry>
324 <entry>Class <code>system_error</code></entry>
325 <entry>Partial</entry>
326 <entry>Missing <code>const char*</code> constructors.</entry>
330 <emphasis>20</emphasis>
332 <entry namest="c2" nameend="c4" align="left">
333 <emphasis>General utilities</emphasis>
338 <entry>General</entry>
344 <entry>Utility components</entry>
349 <entry>20.2.1</entry>
350 <entry>Operators</entry>
355 <entry>20.2.2</entry>
361 <entry>20.2.3</entry>
362 <entry><code>forward</code> and <code>move</code> helpers</entry>
367 <entry>20.2.4</entry>
368 <entry>Function template <code>declval</code></entry>
379 <entry>20.3.1</entry>
380 <entry>In general</entry>
385 <entry>20.3.2</entry>
386 <entry>Class template <code>pair</code></entry>
391 <entry>20.3.3</entry>
392 <entry>Specialized algorithms</entry>
397 <entry>20.3.4</entry>
398 <entry>Tuple-like access to <code>pair</code></entry>
403 <entry>20.3.5</entry>
404 <entry>Piecewise construction</entry>
410 <entry>Tuples</entry>
415 <entry>20.4.1</entry>
416 <entry>In general</entry>
421 <entry>20.4.2</entry>
422 <entry>Class template <code>tuple</code></entry>
427 <entry>20.4.2.1</entry>
428 <entry>Construction</entry>
433 <entry>20.4.2.2</entry>
434 <entry>Assignment</entry>
439 <entry>20.4.2.3</entry>
445 <entry>20.4.2.4</entry>
446 <entry>Tuple creation functions</entry>
451 <entry>20.4.2.5</entry>
452 <entry>Tuple helper classes</entry>
457 <entry>20.4.2.6</entry>
458 <entry>Element access</entry>
463 <entry>20.4.2.7</entry>
464 <entry>Relational operators</entry>
469 <entry>20.4.2.8</entry>
470 <entry>Tuple traits</entry>
475 <entry>20.4.2.9</entry>
476 <entry>Tuple specialized algorithms</entry>
482 <entry>Class template <code>bitset</code></entry>
487 <entry>20.5.1</entry>
488 <entry><code>bitset</code> constructors</entry>
493 <entry>20.5.2</entry>
494 <entry><code>bitset</code> members</entry>
499 <entry>20.5.3</entry>
500 <entry><code>bitset</code> hash support</entry>
505 <entry>20.5.4</entry>
506 <entry><code>bitset</code> operators</entry>
512 <entry>Memory</entry>
517 <entry>20.6.1</entry>
518 <entry>In general</entry>
523 <entry>20.6.2</entry>
524 <entry>Header <code><memory></code> synopsis</entry>
529 <entry>20.6.3</entry>
530 <entry>Pointer traits</entry>
535 <?dbhtml bgcolor="#B0B0B0" ?>
536 <entry>20.6.4</entry>
537 <entry>Pointer safety</entry>
538 <entry>Partial</entry>
542 <?dbhtml bgcolor="#C8B0B0" ?>
543 <entry>20.6.5</entry>
549 <entry>20.6.6</entry>
550 <entry>Allocator argument tag</entry>
555 <entry>20.6.7</entry>
556 <entry><code>uses_allocator</code></entry>
561 <entry>20.6.8</entry>
562 <entry>Allocator traits</entry>
567 <entry>20.6.9</entry>
568 <entry>The default allocator</entry>
573 <entry>20.6.10</entry>
574 <entry>Raw storage iterator</entry>
579 <entry>20.6.11</entry>
580 <entry>Temporary buffers</entry>
585 <entry>20.6.12</entry>
586 <entry>Specialized algorithms</entry>
591 <entry>20.6.12.1</entry>
592 <entry><code>addressof</code></entry>
597 <entry>20.6.12.2</entry>
598 <entry><code>uninitialized_copy</code></entry>
603 <entry>20.6.12.3</entry>
604 <entry><code>uninitialized_fill</code></entry>
609 <?dbhtml bgcolor="#B0B0B0" ?>
610 <entry>20.6.12.4</entry>
611 <entry><code>uninitialized_fill_n</code></entry>
612 <entry>Partial</entry>
613 <entry>Returns <code>void</code>..</entry>
616 <entry>20.6.13</entry>
617 <entry>C library</entry>
623 <entry>Smart pointers</entry>
628 <entry>20.7.1</entry>
629 <entry>Class template <code>unique_ptr</code></entry>
634 <entry>20.7.2</entry>
635 <entry>Shared-ownership pointers</entry>
640 <entry>20.7.2.1</entry>
641 <entry>Class <code>bad_weak_ptr</code></entry>
646 <entry>20.7.2.2</entry>
647 <entry>Class template <code>shared_ptr</code></entry>
652 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</link>.
657 <entry>20.7.2.3</entry>
658 <entry>Class template <code>weak_ptr</code></entry>
663 <entry>20.7.2.4</entry>
664 <entry>Class template <code>emable_shared_from_this</code></entry>
669 <?dbhtml bgcolor="#B0B0B0" ?>
670 <entry>20.7.2.5</entry>
671 <entry><code>shared_ptr</code> atomic access</entry>
672 <entry>Partial</entry>
676 <entry>20.7.2.6</entry>
677 <entry>Smart pointer hash support</entry>
683 <entry>Function objects</entry>
688 <entry>20.8.1</entry>
689 <entry>Definitions</entry>
694 <entry>20.8.2</entry>
695 <entry>Requirements</entry>
700 <entry>20.8.3</entry>
701 <entry>Class template <code>reference_wrapper</code></entry>
706 <entry>20.8.4</entry>
707 <entry>Arithmetic operation</entry>
712 <entry>20.8.5</entry>
713 <entry>Comparisons</entry>
718 <entry>20.8.6</entry>
719 <entry>Logical operations</entry>
724 <entry>20.8.7</entry>
725 <entry>Bitwise operations</entry>
730 <entry>20.8.8</entry>
731 <entry>Negators</entry>
736 <entry>20.8.9</entry>
737 <entry>Function template <code>bind</code></entry>
742 <entry>20.8.10</entry>
743 <entry>Function template <code>mem_fn</code></entry>
748 <entry>20.8.11</entry>
749 <entry>Polymorphic function wrappers</entry>
754 <entry>20.8.11.1</entry>
755 <entry>Class <code>bad_function_call</code></entry>
760 <?dbhtml bgcolor="#B0B0B0" ?>
761 <entry>20.8.11.2</entry>
762 <entry>Class template <code>function</code></entry>
763 <entry>Partial</entry>
764 <entry>Missing allocator support</entry>
767 <entry>20.8.12</entry>
768 <entry>Class template <code>hash</code></entry>
774 <entry>Metaprogramming and type traits</entry>
779 <entry>20.9.1</entry>
780 <entry>Requirements</entry>
785 <entry>20.9.2</entry>
786 <entry>Header <code><type_traits></code> synopsis</entry>
791 <entry>20.9.3</entry>
792 <entry>Helper classes</entry>
797 <entry>20.9.4</entry>
798 <entry>Unary Type Traits</entry>
803 <entry>20.9.4.1</entry>
804 <entry>Primary type categories</entry>
809 <entry>20.9.4.2</entry>
810 <entry>Composite type traits</entry>
815 <?dbhtml bgcolor="#B0B0B0" ?>
816 <entry>20.9.4.3</entry>
817 <entry>Type properties</entry>
818 <entry>Partial</entry>
819 <entry>Missing is_trivially_copyable,
820 is_trivially_constructible, is_trivially_default_constructible,
821 is_trivially_copy_constructible, is_trivially_move_constructible,
822 is_trivially_assignable, is_trivially_default_assignable,
823 is_trivially_copy_assignable, is_trivially_move_assignable
827 <entry>20.9.5</entry>
828 <entry>Type property queries</entry>
833 <entry>20.9.6</entry>
834 <entry>Relationships between types</entry>
839 <entry>20.9.7</entry>
840 <entry>Transformations between types</entry>
845 <entry>20.9.7.1</entry>
846 <entry>Const-volatile modifications</entry>
851 <entry>20.9.7.2</entry>
852 <entry>Reference modifications</entry>
857 <entry>20.9.7.3</entry>
858 <entry>Sign modifications</entry>
863 <entry>20.9.7.4</entry>
864 <entry>Array modifications</entry>
869 <entry>20.9.7.5</entry>
870 <entry>Pointer modifications</entry>
875 <entry>20.9.7.6</entry>
876 <entry>Other transformations</entry>
882 <entry>Compile-time rational arithmetic</entry>
887 <entry>20.10.1</entry>
888 <entry>In general</entry>
893 <entry>20.10.2</entry>
894 <entry>Header <code><ratio></code> synopsis</entry>
899 <entry>20.10.3</entry>
900 <entry>Class template <code>ratio</code></entry>
905 <entry>20.10.4</entry>
906 <entry>Arithmetic on <code>ratio</code>s</entry>
911 <entry>20.10.5</entry>
912 <entry>Comparison of <code>ratio</code>s</entry>
917 <entry>20.10.6</entry>
918 <entry>SI types for <code>ratio</code></entry>
924 <entry>Time utilities</entry>
929 <entry>20.11.3</entry>
930 <entry>Clock requirements</entry>
935 <entry>20.11.4</entry>
936 <entry>Time-related traits</entry>
941 <entry>20.11.4.1</entry>
942 <entry><code>treat_as_floating_point</code></entry>
947 <entry>20.11.4.2</entry>
948 <entry><code>duration_values</code></entry>
953 <entry>20.11.4.3</entry>
954 <entry>Specializations of <code>common_type</code></entry>
959 <?dbhtml bgcolor="#B0B0B0" ?>
960 <entry>20.11.5</entry>
961 <entry>Class template <code>duration</code></entry>
962 <entry>Partial</entry>
963 <entry>Missing constexpr for non-member arithmetic operations</entry>
966 <entry>20.11.6</entry>
967 <entry>Class template <code>time_point</code></entry>
972 <entry>20.11.7</entry>
973 <entry>Clocks</entry>
978 <entry>20.11.7.1</entry>
979 <entry>Class <code>system_clock</code></entry>
984 <entry>20.11.7.2</entry>
985 <entry>Class <code>steady_clock</code></entry>
990 <entry>20.11.7.3</entry>
991 <entry>Class <code>high_resolution_clock</code></entry>
996 <entry>20.11.8</entry>
997 <entry>Date and time functions</entry>
1002 <entry>20.12</entry>
1003 <entry>Scoped allocator adaptor</entry>
1008 <entry>20.12.1</entry>
1009 <entry>Header <code><scoped_allocator></code> synopsis</entry>
1014 <entry>20.12.2</entry>
1015 <entry>Scoped allocator adaptor member types</entry>
1020 <entry>20.12.3</entry>
1021 <entry>Scoped allocator adaptor constructors</entry>
1026 <?dbhtml bgcolor="#B0B0B0" ?>
1027 <entry>20.12.4</entry>
1028 <entry>Scoped allocator adaptor members</entry>
1029 <entry>Partial</entry>
1030 <entry>OUTERMOST is not recursive.</entry>
1033 <entry>20.12.5</entry>
1034 <entry>Scoped allocator operators</entry>
1039 <entry>20.13</entry>
1040 <entry>Class <code>type_index</code></entry>
1046 <emphasis>21</emphasis>
1048 <entry namest="c2" nameend="c4" align="left">
1049 <emphasis>Strings</emphasis>
1054 <entry>General</entry>
1060 <entry>Character traits</entry>
1065 <entry>21.2.1</entry>
1066 <entry>Character traits requirements</entry>
1071 <entry>21.2.2</entry>
1072 <entry>traits typedefs</entry>
1077 <entry>21.2.3</entry>
1078 <entry><code>char_traits</code> specializations</entry>
1083 <?dbhtml bgcolor="#B0B0B0" ?>
1084 <entry>21.2.3.1</entry>
1085 <entry>struct <code>char_traits<char></code></entry>
1086 <entry>Partial</entry>
1087 <entry>Missing constexpr</entry>
1090 <?dbhtml bgcolor="#B0B0B0" ?>
1091 <entry>21.2.3.2</entry>
1092 <entry>struct <code>char_traits<char16_t></code></entry>
1093 <entry>Partial</entry>
1094 <entry>Missing constexpr</entry>
1097 <entry>21.2.3.3</entry>
1098 <entry>struct <code>char_traits<char32_t></code></entry>
1103 <entry>21.2.3.4</entry>
1104 <entry>struct <code>char_traits<wchar_t></code></entry>
1110 <entry>String classes</entry>
1115 <?dbhtml bgcolor="#B0B0B0" ?>
1117 <entry>Class template <code>basic_string</code></entry>
1118 <entry>Partial</entry>
1119 <entry>Non-conforming Copy-On-Write implementation</entry>
1123 <entry>Numeric Conversions</entry>
1129 <entry>Hash support</entry>
1134 <?dbhtml bgcolor="#B0B0B0" ?>
1136 <entry>Null-terminated sequence utilities</entry>
1137 <entry>Partial</entry>
1138 <entry>C library dependency.
1139 Missing <filename class="headerfile"><cuchar></filename>
1144 <emphasis>22</emphasis>
1146 <entry namest="c2" nameend="c4" align="left">
1147 <emphasis>Localization</emphasis>
1152 <entry>General</entry>
1158 <entry>Header <code><locale></code> synopsis</entry>
1164 <entry>Locales</entry>
1169 <entry>22.3.1</entry>
1170 <entry>Class <code>locale</code></entry>
1175 <entry>22.3.2</entry>
1176 <entry><code>locale</code> globals</entry>
1181 <entry>22.3.3</entry>
1182 <entry>Convenience interfaces</entry>
1187 <?dbhtml bgcolor="#B0B0B0" ?>
1188 <entry>22.3.3.1</entry>
1189 <entry>Character classification</entry>
1190 <entry>Partial</entry>
1191 <entry>Missing <code>isblank</code>.</entry>
1194 <entry>22.3.3.2</entry>
1195 <entry>Conversions</entry>
1200 <entry>22.3.3.2.1</entry>
1201 <entry>Character conversions</entry>
1206 <?dbhtml bgcolor="#C8B0B0" ?>
1207 <entry>22.3.3.2.2</entry>
1208 <entry><code>string</code> conversions</entry>
1213 <?dbhtml bgcolor="#C8B0B0" ?>
1214 <entry>22.3.3.2.3</entry>
1215 <entry>Buffer conversions</entry>
1221 <entry>Standard <code>locale</code> categories</entry>
1226 <?dbhtml bgcolor="#B0B0B0" ?>
1227 <entry>22.4.1</entry>
1228 <entry>The <code>ctype</code> category</entry>
1229 <entry>Partial</entry>
1230 <entry>Missing <code>codecvt<char16_t></code> and
1231 <code>codecvt<char32_t></code></entry>
1234 <entry>22.4.2</entry>
1235 <entry>The numeric category</entry>
1240 <entry>22.4.2.1</entry>
1241 <entry><code>num_get</code></entry>
1246 <entry>22.4.2.2</entry>
1247 <entry><code>num_put</code></entry>
1252 <entry>22.4.3</entry>
1253 <entry>The numeric punctuation facet</entry>
1258 <entry>22.4.4</entry>
1259 <entry>The collate category</entry>
1264 <entry>22.4.5</entry>
1265 <entry>The time category</entry>
1270 <?dbhtml bgcolor="#B0B0B0" ?>
1271 <entry>22.4.5.1</entry>
1272 <entry>Class template <code>time_get</code></entry>
1273 <entry>Partial</entry>
1274 <entry>Missing <code>get</code> and <code>do_get</code></entry>
1277 <?dbhtml bgcolor="#B0B0B0" ?>
1278 <entry>22.4.5.2</entry>
1279 <entry>Class template <code>time_get_byname</code></entry>
1280 <entry>Partial</entry>
1281 <entry>Likewise</entry>
1284 <entry>22.4.5.3</entry>
1285 <entry>Class template <code>time_put</code></entry>
1290 <entry>22.4.5.3</entry>
1291 <entry>Class template <code>time_put_byname</code></entry>
1296 <entry>22.4.6</entry>
1297 <entry>The monetary category</entry>
1302 <entry>22.4.6.1</entry>
1303 <entry>Class template <code>money_get</code></entry>
1308 <entry>22.4.6.2</entry>
1309 <entry>Class template <code>money_put</code></entry>
1314 <entry>22.4.6.3</entry>
1315 <entry>Class template <code>money_punct</code></entry>
1320 <entry>22.4.6.4</entry>
1321 <entry>Class template <code>money_punct_byname</code></entry>
1326 <entry>22.4.7</entry>
1327 <entry>The message retrieval category</entry>
1332 <entry>22.4.8</entry>
1333 <entry>Program-defined facets</entry>
1338 <?dbhtml bgcolor="#C8B0B0" ?>
1340 <entry>Standard code conversion facets</entry>
1346 <entry>C Library Locales</entry>
1352 <emphasis>23</emphasis>
1354 <entry namest="c2" nameend="c4" align="left">
1355 <emphasis>Containers</emphasis>
1360 <entry>General</entry>
1366 <entry>Container requirements</entry>
1371 <?dbhtml bgcolor="#B0B0B0" ?>
1372 <entry>23.2.1</entry>
1373 <entry>General container requirements</entry>
1374 <entry>Partial</entry>
1375 <entry><code>deque</code> and <code>list</code> do not
1376 meet the requirements
1377 relating to allocator use and propagation.</entry>
1380 <entry>23.2.2</entry>
1381 <entry>Container data races</entry>
1386 <entry>23.2.3</entry>
1387 <entry>Sequence containers</entry>
1392 <entry>23.2.4</entry>
1393 <entry>Associative containers</entry>
1398 <entry>23.2.5</entry>
1399 <entry>Unordered associative containers</entry>
1405 <entry>Sequence containers</entry>
1410 <entry>23.3.2</entry>
1411 <entry>Class template <code>array</code></entry>
1416 <?dbhtml bgcolor="#B0B0B0" ?>
1417 <entry>23.3.3</entry>
1418 <entry>Class template <code>deque</code></entry>
1419 <entry>Partial</entry>
1420 <entry>Incomplete allocator support.</entry>
1423 <entry>23.3.4</entry>
1424 <entry>Class template <code>forward_list</code></entry>
1429 <?dbhtml bgcolor="#B0B0B0" ?>
1430 <entry>23.3.5</entry>
1431 <entry>Class template <code>list</code></entry>
1432 <entry>Partial</entry>
1433 <entry>Incomplete allocator support.</entry>
1436 <entry>23.3.6</entry>
1437 <entry>Class template <code>vector</code></entry>
1442 <entry>23.3.7</entry>
1443 <entry>Class <code>vector<bool></code></entry>
1449 <entry>Associative containers</entry>
1454 <entry>23.4.4</entry>
1455 <entry>Class template <code>map</code></entry>
1460 <entry>23.4.5</entry>
1461 <entry>Class template <code>multimap</code></entry>
1466 <entry>23.4.6</entry>
1467 <entry>Class template <code>set</code></entry>
1472 <entry>23.4.7</entry>
1473 <entry>Class template <code>multiset</code></entry>
1479 <entry>Unordered associative containers</entry>
1484 <entry>23.5.4</entry>
1485 <entry>Class template <code>unordered_map</code></entry>
1490 <entry>23.5.5</entry>
1491 <entry>Class template <code>unordered_multimap</code></entry>
1496 <entry>23.5.6</entry>
1497 <entry>Class template <code>unordered_set</code></entry>
1502 <entry>23.5.7</entry>
1503 <entry>Class template <code>unordered_multiset</code></entry>
1509 <entry>Container adaptors</entry>
1514 <entry>23.6.1</entry>
1515 <entry>Class template <code>queue</code></entry>
1520 <entry>23.6.2</entry>
1521 <entry>Class template <code>priority_queue</code></entry>
1526 <entry>23.6.3</entry>
1527 <entry>Class template <code>stack</code></entry>
1533 <emphasis>24</emphasis>
1535 <entry namest="c2" nameend="c4" align="left">
1536 <emphasis>Iterators</emphasis>
1541 <entry>General</entry>
1547 <entry>Iterator requirements</entry>
1553 <entry>Header <code><iterator></code> synopsis</entry>
1559 <entry>Iterator primitives</entry>
1565 <entry>Iterator adaptors</entry>
1570 <entry>24.5.1</entry>
1571 <entry>Reverse iterators</entry>
1576 <entry>24.5.2</entry>
1577 <entry>Insert iterators</entry>
1582 <entry>24.5.3</entry>
1583 <entry>Move iterators</entry>
1589 <entry>Stream iterators</entry>
1594 <entry>24.6.1</entry>
1595 <entry>Class template <code>istream_iterator</code></entry>
1600 <entry>24.6.2</entry>
1601 <entry>Class template <code>ostream_iterator</code></entry>
1606 <entry>24.6.3</entry>
1607 <entry>Class template <code>istreambuf_iterator</code></entry>
1612 <entry>24.6.4</entry>
1613 <entry>Class template <code>ostreambuf_iterator</code></entry>
1618 <entry>24.6.5</entry>
1619 <entry>range access</entry>
1625 <emphasis>25</emphasis>
1627 <entry namest="c2" nameend="c4" align="left">
1628 <emphasis>Algorithms</emphasis>
1633 <entry>General</entry>
1639 <entry>Non-modifying sequence operations</entry>
1644 <?dbhtml bgcolor="#B0B0B0" ?>
1646 <entry>Mutating sequence operations</entry>
1647 <entry>Partial</entry>
1648 <entry><code>rotate</code> returns <code>void</code>.</entry>
1652 <entry>Sorting and related operations</entry>
1658 <entry>C library algorithms</entry>
1664 <emphasis>26</emphasis>
1666 <entry namest="c2" nameend="c4" align="left">
1667 <emphasis>Numerics</emphasis>
1672 <entry>General</entry>
1678 <entry>Numeric type requirements</entry>
1684 <entry>The floating-point environment</entry>
1690 <entry>Complex numbers</entry>
1691 <entry>Partial</entry>
1692 <entry>Missing constexpr</entry>
1696 <entry>Random number generation</entry>
1701 <entry>26.5.1</entry>
1702 <entry>Requirements</entry>
1707 <entry>26.5.2</entry>
1708 <entry>Header <code><random></code> synopsis</entry>
1713 <entry>26.5.3</entry>
1714 <entry>Random number engine class templates</entry>
1719 <entry>26.5.3.1</entry>
1720 <entry>Class template <code>linear_congruential_engine</code></entry>
1722 <entry>Missing constexpr</entry>
1725 <entry>26.5.3.2</entry>
1726 <entry>Class template <code>mersenne_twister_engine</code></entry>
1728 <entry>Missing constexpr</entry>
1731 <entry>26.5.3.3</entry>
1732 <entry>Class template <code>subtract_with_carry_engine</code></entry>
1734 <entry>Missing constexpr</entry>
1737 <entry>26.5.4</entry>
1738 <entry>Random number engine adaptor class templates</entry>
1743 <entry>26.5.4.2</entry>
1744 <entry>Class template <code>discard_block_engine</code></entry>
1746 <entry>Missing constexpr</entry>
1749 <entry>26.5.4.3</entry>
1750 <entry>Class template <code>independent_bits_engine</code></entry>
1752 <entry>Missing constexpr</entry>
1755 <entry>26.5.4.4</entry>
1756 <entry>Class template <code>shuffle_order_engine</code></entry>
1758 <entry>Missing constexpr</entry>
1761 <entry>26.5.5</entry>
1762 <entry>Engines and engine adaptors with predefined parameters</entry>
1767 <entry>26.5.6</entry>
1768 <entry>Class <code>random_device</code></entry>
1770 <entry>Missing constexpr</entry>
1773 <entry>26.5.7</entry>
1774 <entry>Utilities</entry>
1779 <entry>26.5.7.1</entry>
1780 <entry>Class <code>seed_seq</code></entry>
1785 <entry>26.5.7.2</entry>
1786 <entry>Function template <code>generate_canonical</code></entry>
1791 <entry>26.5.8</entry>
1792 <entry>Random number distribution class templates</entry>
1797 <entry>26.5.8.2</entry>
1798 <entry>Uniform distributions</entry>
1803 <entry>26.5.8.2.1</entry>
1804 <entry>Class template <code>uniform_int_distribution</code></entry>
1809 <entry>26.5.8.2.2</entry>
1810 <entry>Class template <code>uniform_real_distribution</code></entry>
1815 <entry>26.5.8.3</entry>
1816 <entry>Bernoulli distributions</entry>
1821 <entry>26.5.8.3.1</entry>
1822 <entry>Class <code>bernoulli_distribution</code></entry>
1827 <entry>26.5.8.3.2</entry>
1828 <entry>Class template <code>binomial_distribution</code></entry>
1833 <entry>26.5.8.3.3</entry>
1834 <entry>Class template <code>geometric_distribution</code></entry>
1839 <entry>26.5.8.3.4</entry>
1840 <entry>Class template <code>negative_binomial_distribution</code></entry>
1845 <entry>26.5.8.4</entry>
1846 <entry>Poisson distributions</entry>
1851 <entry>26.5.8.4.1</entry>
1852 <entry>Class template <code>poisson_distribution</code></entry>
1857 <entry>26.5.8.4.2</entry>
1858 <entry>Class template <code>exponential_distribution</code></entry>
1863 <entry>26.5.8.4.3</entry>
1864 <entry>Class template <code>gamma_distribution</code></entry>
1869 <entry>26.5.8.4.4</entry>
1870 <entry>Class template <code>weibull_distribution</code></entry>
1875 <entry>26.5.8.4.5</entry>
1876 <entry>Class template <code>extreme_value_distribution</code></entry>
1881 <entry>26.5.8.5</entry>
1882 <entry>Normal distributions</entry>
1887 <entry>26.5.8.5.1</entry>
1888 <entry>Class template <code>normal_distribution</code></entry>
1893 <entry>26.5.8.5.2</entry>
1894 <entry>Class template <code>lognormal_distribution</code></entry>
1899 <entry>26.5.8.5.3</entry>
1900 <entry>Class template <code>chi_squared_distribution</code></entry>
1905 <entry>26.5.8.5.4</entry>
1906 <entry>Class template <code>cauchy_distribution</code></entry>
1911 <entry>26.5.8.5.5</entry>
1912 <entry>Class template <code>fisher_f_distribution</code></entry>
1917 <entry>26.5.8.5.6</entry>
1918 <entry>Class template <code>student_t_distribution</code></entry>
1923 <entry>26.5.8.6</entry>
1924 <entry>Sampling distributions</entry>
1929 <entry>26.5.8.6.1</entry>
1930 <entry>Class template <code>discrete_distribution</code></entry>
1935 <entry>26.5.8.6.2</entry>
1936 <entry>Class template <code>piecewise_constant_distribution</code></entry>
1941 <entry>26.5.8.6.3</entry>
1942 <entry>Class template <code>piecewise_linear_distribution</code></entry>
1948 <entry>Numeric arrays</entry>
1953 <entry>26.6.1</entry>
1954 <entry>Header <code><valarray></code> synopsis</entry>
1959 <entry>26.6.2</entry>
1960 <entry>Class template <code>valarray</code></entry>
1965 <entry>26.6.3</entry>
1966 <entry><code>valarray</code> non-member operations</entry>
1971 <entry>26.6.4</entry>
1972 <entry>Class <code>slice</code></entry>
1977 <entry>26.6.5</entry>
1978 <entry>Class template <code>slice_array</code></entry>
1983 <entry>26.6.6</entry>
1984 <entry>The <code>gslice</code> class</entry>
1989 <entry>26.6.7</entry>
1990 <entry>Class template <code>gslice_array</code></entry>
1995 <entry>26.6.8</entry>
1996 <entry>Class template <code>mask_array</code></entry>
2001 <entry>26.6.9</entry>
2002 <entry>Class template <code>indirect_array</code></entry>
2007 <entry>26.6.10</entry>
2008 <entry><code>valarray</code> range access</entry>
2014 <entry>Generalized numeric operations</entry>
2019 <entry>26.7.1</entry>
2020 <entry>Header <code><numeric></code> synopsis</entry>
2025 <entry>26.7.2</entry>
2026 <entry><code>accumulate</code></entry>
2031 <entry>26.7.3</entry>
2032 <entry><code>inner_product</code></entry>
2037 <entry>26.7.4</entry>
2038 <entry><code>partial_sum</code></entry>
2043 <entry>26.7.5</entry>
2044 <entry><code>adjacent_difference</code></entry>
2049 <entry>26.7.6</entry>
2055 <?dbhtml bgcolor="#B0B0B0" ?>
2057 <entry>C Library</entry>
2058 <entry>Partial</entry>
2059 <entry><code><ctgmath></code> doesn't include
2060 <code><ccomplex></code>
2065 <emphasis>27</emphasis>
2067 <entry namest="c2" nameend="c4" align="left">
2068 <emphasis>Input/output library</emphasis>
2073 <entry>General</entry>
2079 <entry>Iostreams requirements</entry>
2084 <entry>27.2.1</entry>
2085 <entry>Imbue Limitations</entry>
2090 <entry>27.2.2</entry>
2091 <entry>Positioning Type Limitations</entry>
2096 <?dbhtml bgcolor="#B0B0B0" ?>
2097 <entry>27.2.3</entry>
2098 <entry>Thread safety</entry>
2099 <entry>Partial</entry>
2104 <entry>Forward declarations</entry>
2110 <entry>Standard iostream objects</entry>
2115 <entry>27.4.1</entry>
2116 <entry>Overview</entry>
2121 <entry>27.4.2</entry>
2122 <entry>Narrow stream objects</entry>
2127 <entry>27.4.3</entry>
2128 <entry>Wide stream objects</entry>
2133 <?dbhtml bgcolor="#B0B0B0" ?>
2135 <entry>Iostreams base classes</entry>
2136 <entry>Partial</entry>
2138 Missing <code>io_errc</code> and <code>iostream_category</code>.
2139 <code>ios_base::failure</code> is not derived from <code>system_error</code>.
2140 Missing <code>ios_base::hexfloat</code>.
2145 <entry>Stream buffers</entry>
2150 <?dbhtml bgcolor="#B0B0B0" ?>
2152 <entry>Formatting and manipulators</entry>
2153 <entry>Partial</entry>
2155 Missing <code>get_time</code> and <code>put_time</code> manipulators.
2160 <entry>String-based streams</entry>
2166 <entry>File-based streams</entry>
2172 <emphasis>28</emphasis>
2174 <entry namest="c2" nameend="c4" align="left">
2175 <emphasis>Regular expressions</emphasis>
2180 <entry>General</entry>
2186 <entry>Definitions</entry>
2192 <entry>Requirements</entry>
2198 <entry>Header <code><regex></code> synopsis</entry>
2204 <entry>Namespace <code>std::regex_constants</code></entry>
2210 <entry>Class <code>regex_error</code></entry>
2215 <?dbhtml bgcolor="#B0B0B0" ?>
2217 <entry>Class template <code>regex_traits</code></entry>
2218 <entry>Partial</entry>
2219 <entry><code>transform_primary</code> is not correctly implemented</entry>
2224 <entry>Class template <code>basic_regex</code></entry>
2230 <entry>Class template <code>sub_match</code></entry>
2235 <entry>28.10</entry>
2236 <entry>Class template <code>match_results</code></entry>
2241 <entry>28.11</entry>
2242 <entry>Regular expression algorithms</entry>
2247 <entry>28.12</entry>
2248 <entry>Regular expression Iterators</entry>
2253 <entry>28.13</entry>
2254 <entry>Modified ECMAScript regular expression grammar</entry>
2260 <emphasis>29</emphasis>
2262 <entry namest="c2" nameend="c4" align="left">
2263 <emphasis>Atomic operations</emphasis>
2268 <entry>General</entry>
2274 <entry>Header <code><atomic></code> synopsis</entry>
2279 <?dbhtml bgcolor="#B0B0B0" ?>
2281 <entry>Order and consistency</entry>
2282 <entry>Partial</entry>
2287 <entry>Lock-free property</entry>
2293 <entry>Atomic types</entry>
2299 <entry>Operations on atomic types</entry>
2305 <entry>Flag Type and operations</entry>
2311 <entry>Fences</entry>
2317 <emphasis>30</emphasis>
2319 <entry namest="c2" nameend="c4" align="left">
2320 <emphasis>Thread support</emphasis>
2325 <entry>General</entry>
2331 <entry>Requirements</entry>
2337 <entry>Threads</entry>
2342 <?dbhtml bgcolor="#B0B0B0" ?>
2343 <entry>30.3.1</entry>
2344 <entry>Class <code>thread</code></entry>
2345 <entry>Partial</entry>
2346 <entry><code>thread::id</code> comparisons not well-defined</entry>
2349 <entry>30.3.2</entry>
2350 <entry>Namespace <code>this_thread</code></entry>
2356 <entry>Mutual exclusion</entry>
2361 <entry>30.4.1</entry>
2362 <entry>Mutex requirements</entry>
2367 <entry>30.4.1.1</entry>
2368 <entry>In general</entry>
2373 <entry>30.4.1.2</entry>
2374 <entry>Mutex types</entry>
2379 <entry>30.4.1.2.1</entry>
2380 <entry>Class <code>mutex</code></entry>
2385 <entry>30.4.1.2.2</entry>
2386 <entry>Class <code>recursive_mutex</code></entry>
2391 <entry>30.4.1.3</entry>
2392 <entry>Timed mutex types</entry>
2394 <entry>On POSIX sytems these types are only defined if the OS
2395 supports the POSIX Timeouts option. </entry>
2398 <entry>30.4.1.3.1</entry>
2399 <entry>Class <code>timed_mutex</code></entry>
2404 <entry>30.4.1.3.2</entry>
2405 <entry>Class <code>recursive_timed_mutex</code></entry>
2410 <entry>30.4.2</entry>
2411 <entry>Locks</entry>
2416 <entry>30.4.2.1</entry>
2417 <entry>Class template <code>lock_guard</code></entry>
2422 <entry>30.4.2.2</entry>
2423 <entry>Class template <code>unique_lock</code></entry>
2428 <entry>30.4.3</entry>
2429 <entry>Generic locking algorithms</entry>
2434 <entry>30.4.4</entry>
2435 <entry>Call once</entry>
2440 <entry>30.4.4.1</entry>
2441 <entry>Struct <code>once_flag</code></entry>
2446 <entry>30.4.4.2</entry>
2447 <entry>Function <code>call_once</code></entry>
2452 <?dbhtml bgcolor="#B0B0B0" ?>
2454 <entry>Condition variables</entry>
2455 <entry>Partial</entry>
2456 <entry>Missing notify_all_at_thread_exit</entry>
2459 <entry>30.5.1</entry>
2460 <entry>Class <code>condition_variable</code></entry>
2465 <entry>30.5.2</entry>
2466 <entry>Class <code>condition_variable_any</code></entry>
2472 <entry>Futures</entry>
2477 <entry>30.6.1</entry>
2478 <entry>Overview</entry>
2483 <entry>30.6.2</entry>
2484 <entry>Error handling</entry>
2489 <entry>30.6.3</entry>
2490 <entry>Class <code>future_error</code></entry>
2495 <entry>30.6.4</entry>
2496 <entry>Shared state</entry>
2501 <?dbhtml bgcolor="#B0B0B0" ?>
2502 <entry>30.6.5</entry>
2503 <entry>Class template <code>promise</code></entry>
2504 <entry>Partial</entry>
2505 <entry>Missing set_*_at_thread_exit</entry>
2508 <entry>30.6.6</entry>
2509 <entry>Class template <code>future</code></entry>
2514 <entry>30.6.7</entry>
2515 <entry>Class template <code>shared_future</code></entry>
2520 <entry>30.6.8</entry>
2521 <entry>Function template <code>async</code></entry>
2526 <?dbhtml bgcolor="#B0B0B0" ?>
2527 <entry>30.6.9</entry>
2528 <entry>Class template <code>packaged_task</code></entry>
2529 <entry>Partial</entry>
2530 <entry>Missing make_ready_at_thread_exit</entry>
2534 <emphasis>Appendix D</emphasis>
2536 <entry namest="c2" nameend="c4" align="left">
2537 <emphasis>Compatibility features</emphasis>
2542 <entry>Increment operator with <code>bool</code> operand</entry>
2548 <entry><code>register</code> keyword</entry>
2554 <entry>Implicit declaration of copy functions</entry>
2560 <entry>Dynamic exception specifications</entry>
2566 <entry>C standard library headers</entry>
2572 <entry>Old iostreams members</entry>
2578 <entry><code>char*</code> streams</entry>
2584 <entry>Function objects</entry>
2590 <entry>Binders</entry>
2596 <entry><code>auto_ptr</code></entry>
2602 <entry>Violating exception-specifications</entry>
2611 <section xml:id="iso.2011.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
2613 <para>For behaviour which is also specified by the 1998 and 2003 standards,
2614 see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation
2615 Specific Behavior</link>. This section only documents behaviour which
2616 is new in the 2011 standard.
2620 <emphasis>20.8.9.1.3 [func.bind.place]/1</emphasis> There are 29
2621 placeholders defined and the placeholder types are
2622 <literal>CopyAssignable</literal>.
2626 <emphasis>23.5.4.2 [unord.map.cnstr]</emphasis>,
2627 <emphasis>23.5.5.2 [unord.multimap.cnstr]</emphasis>,
2628 <emphasis>23.5.6.2 [unord.set.cnstr]</emphasis>,
2629 <emphasis>23.5.7.2 [unord.multiset.cnstr]</emphasis>
2630 The default bucket count is 10 for the default constructors
2631 and 0 for the range constructors and initializer-list constructors.
2635 <emphasis>30.2.3 [thread.req.native]/1</emphasis>
2636 <classname>native_handle_type</classname> and
2637 <methodname>native_handle</methodname> are provided. The handle types
2638 are defined in terms of the Gthreads abstraction layer.
2640 <listitem><para><classname>thread</classname>: The native handle type is
2641 a typedef for <code>__gthread_t</code> i.e. <code>pthread_t</code>
2642 when GCC is configured with the <literal>posix</literal> thread
2643 model. The value of the native handle is undefined for a thread
2644 which is not joinable.
2646 <listitem><para><classname>mutex</classname> and
2647 <classname>timed_mutex</classname>:
2648 The native handle type is <code>__gthread_mutex_t*</code> i.e.
2649 <code>pthread_mutex_t*</code> for the <literal>posix</literal>
2652 <listitem><para><classname>recursive_mutex</classname> and
2653 <classname>recursive_timed_mutex</classname>:
2654 The native handle type is <code>__gthread_recursive_mutex_t*</code>
2655 i.e. <code>pthread_mutex_t*</code> for the <literal>posix</literal>
2658 <listitem><para><classname>condition_variable</classname>: The native
2659 handle type is <code>__gthread_cond_t*</code> i.e.
2660 <code>pthread_cond_t*</code> for the <literal>posix</literal>
2667 <emphasis>30.6.1 [futures.overview]/2</emphasis>
2668 <code>launch</code> is a scoped enumeration type with
2669 overloaded operators to support bitmask operations. There are no
2670 additional bitmask elements defined.