Home | History | Annotate | Line # | Download | only in manual
      1 <section xmlns="http://docbook.org/ns/docbook" version="5.0"
      2 	 xml:id="status.iso.1998" xreflabel="ISO C++ 1998">
      3 <?dbhtml filename="status_iso_cxx1998.html"?>
      4 
      5 <info><title>C++ 1998/2003</title>
      6   <keywordset>
      7     <keyword>ISO C++</keyword>
      8     <keyword>1998</keyword>
      9   </keywordset>
     10 </info>
     11 
     12 
     13 <section xml:id="iso.1998.status" xreflabel="Implementation Status">
     14 <info><title>Implementation Status</title></info>
     15 
     16 <para>
     17 This status table is based on the table of contents of ISO/IEC 14882:2003.
     18 </para>
     19 
     20 <para>
     21 This section describes the C++ support in the GCC 12 release series.
     22 </para>
     23 
     24 <!-- Status is Yes or No, Broken/Partial-->
     25 <!--
     26    Yes
     27 
     28    No
     29       <?dbhtml bgcolor="#C8B0B0" ?>
     30    Broken/Partial
     31       <?dbhtml bgcolor="#B0B0B0" ?>
     32 -->
     33 <table frame="all" xml:id="table.cxx98_status">
     34   <title>C++ 1998/2003 Implementation Status</title>
     35 
     36 <tgroup cols="4" align="left" colsep="0" rowsep="1">
     37 <colspec colname="c1"/>
     38 <colspec colname="c2"/>
     39 <colspec colname="c3"/>
     40 <colspec colname="c4"/>
     41   <thead>
     42     <row>
     43       <entry>Section</entry>
     44       <entry>Description</entry>
     45       <entry>Status</entry>
     46       <entry>Comments</entry>
     47     </row>
     48   </thead>
     49 
     50   <tbody>
     51     <row>
     52       <entry>
     53 	<emphasis>18</emphasis>
     54       </entry>
     55       <entry namest="c2" nameend="c4" align="left">
     56 	<emphasis>Language support</emphasis>
     57       </entry>
     58     </row>
     59 
     60     <row>
     61       <entry>18.1</entry>
     62       <entry>Types</entry>
     63       <entry>Y</entry>
     64       <entry/>
     65     </row>
     66     <row>
     67       <entry>18.2</entry>
     68       <entry>Implementation properties</entry>
     69       <entry>Y</entry>
     70       <entry/>
     71     </row>
     72     <row>
     73       <entry>18.2.1</entry>
     74       <entry>Numeric Limits</entry>
     75       <entry/>
     76       <entry/>
     77     </row>
     78     <row>
     79       <entry>18.2.1.1</entry>
     80       <entry>Class template <code>numeric_limits</code></entry>
     81       <entry>Y</entry>
     82       <entry/>
     83     </row>
     84     <row>
     85       <entry>18.2.1.2</entry>
     86       <entry><code>numeric_limits</code> members</entry>
     87       <entry>Y</entry>
     88     </row>
     89     <row>
     90       <entry>18.2.1.3</entry>
     91       <entry><code>float_round_style</code></entry>
     92       <entry>Y</entry>
     93     </row>
     94     <row>
     95       <entry>18.2.1.4</entry>
     96       <entry><code>float_denorm_style</code></entry>
     97       <entry>Y</entry>
     98     </row>
     99     <row>
    100       <entry>18.2.1.5</entry>
    101       <entry><code>numeric_limits</code> specializations</entry>
    102       <entry>Y</entry>
    103       <entry/>
    104     </row>
    105     <row>
    106       <entry>18.2.2</entry>
    107       <entry>C Library</entry>
    108       <entry>Y</entry>
    109       <entry/>
    110     </row>
    111     <row>
    112       <entry>18.3</entry>
    113       <entry>Start and termination</entry>
    114       <entry>Y</entry>
    115       <entry/>
    116     </row>
    117     <row>
    118       <entry>18.4</entry>
    119       <entry>Dynamic memory management</entry>
    120       <entry>Y</entry>
    121       <entry/>
    122     </row>
    123     <row>
    124       <entry>18.5</entry>
    125       <entry>Type identification</entry>
    126       <entry/>
    127       <entry/>
    128     </row>
    129     <row>
    130       <entry>18.5.1</entry>
    131       <entry>Class type_info</entry>
    132       <entry>Y</entry>
    133       <entry/>
    134     </row>
    135     <row>
    136       <entry>18.5.2</entry>
    137       <entry>Class bad_cast</entry>
    138       <entry>Y</entry>
    139       <entry/>
    140     </row>
    141     <row>
    142       <entry>18.5.3</entry>
    143       <entry>Class bad_typeid</entry>
    144       <entry>Y</entry>
    145       <entry/>
    146     </row>
    147     <row>
    148       <entry>18.6</entry>
    149       <entry>Exception handling</entry>
    150       <entry/>
    151       <entry/>
    152     </row>
    153     <row>
    154       <entry>18.6.1</entry>
    155       <entry>Class exception</entry>
    156       <entry>Y</entry>
    157       <entry/>
    158     </row>
    159     <row>
    160       <entry>18.6.2</entry>
    161       <entry>Violation exception-specifications</entry>
    162       <entry>Y</entry>
    163       <entry/>
    164     </row>
    165     <row>
    166       <entry>18.6.3</entry>
    167       <entry>Abnormal termination</entry>
    168       <entry>Y</entry>
    169       <entry/>
    170     </row>
    171     <row>
    172       <entry>18.6.4</entry>
    173       <entry><code>uncaught_exception</code></entry>
    174       <entry>Y</entry>
    175       <entry/>
    176     </row>
    177     <row>
    178       <entry>18.7</entry>
    179       <entry>Other runtime support</entry>
    180       <entry>Y</entry>
    181       <entry/>
    182     </row>
    183     <row>
    184       <entry>
    185 	<emphasis>19</emphasis>
    186       </entry>
    187       <entry namest="c2" nameend="c4" align="left">
    188 	<emphasis>Diagnostics</emphasis>
    189       </entry>
    190     </row>
    191     <row>
    192       <entry>19.1</entry>
    193       <entry>Exception classes</entry>
    194       <entry>Y</entry>
    195       <entry/>
    196     </row>
    197     <row>
    198       <entry>19.2</entry>
    199       <entry>Assertions</entry>
    200       <entry>Y</entry>
    201       <entry/>
    202     </row>
    203     <row>
    204       <entry>19.3</entry>
    205       <entry>Error numbers</entry>
    206       <entry>Y</entry>
    207       <entry/>
    208     </row>
    209     <row>
    210       <entry>
    211 	<emphasis>20</emphasis>
    212       </entry>
    213       <entry namest="c2" nameend="c4" align="left">
    214 	<emphasis>General utilities</emphasis>
    215       </entry>
    216     </row>
    217     <row>
    218       <entry>20.1</entry>
    219       <entry>Requirements</entry>
    220       <entry>Y</entry>
    221       <entry/>
    222     </row>
    223    <row>
    224       <entry>20.2</entry>
    225       <entry>Utility components</entry>
    226       <entry/>
    227       <entry/>
    228     </row>
    229     <row>
    230       <entry>20.2.1</entry>
    231       <entry>Operators</entry>
    232       <entry>Y</entry>
    233       <entry/>
    234     </row>
    235     <row>
    236       <entry>20.2.2</entry>
    237       <entry><code>pair</code></entry>
    238       <entry>Y</entry>
    239       <entry/>
    240     </row>
    241    <row>
    242       <entry>20.3</entry>
    243       <entry>Function objects</entry>
    244       <entry/>
    245       <entry/>
    246     </row>
    247     <row>
    248       <entry>20.3.1</entry>
    249       <entry>Base</entry>
    250       <entry>Y</entry>
    251       <entry/>
    252     </row>
    253     <row>
    254       <entry>20.3.2</entry>
    255       <entry>Arithmetic operation</entry>
    256       <entry>Y</entry>
    257       <entry/>
    258     </row>
    259     <row>
    260       <entry>20.3.3</entry>
    261       <entry>Comparisons</entry>
    262       <entry>Y</entry>
    263       <entry/>
    264     </row>
    265     <row>
    266       <entry>20.3.4</entry>
    267       <entry>Logical operations</entry>
    268       <entry>Y</entry>
    269       <entry/>
    270     </row>
    271     <row>
    272       <entry>20.3.5</entry>
    273       <entry>Negators</entry>
    274       <entry>Y</entry>
    275       <entry/>
    276     </row>
    277     <row>
    278       <entry>20.3.6</entry>
    279       <entry>Binders</entry>
    280       <entry>Y</entry>
    281       <entry/>
    282     </row>
    283     <row>
    284       <entry>20.3.7</entry>
    285       <entry>Adaptors for pointers to functions</entry>
    286       <entry>Y</entry>
    287       <entry/>
    288     </row>
    289     <row>
    290       <entry>20.3.8</entry>
    291       <entry>Adaptors for pointers to members</entry>
    292       <entry>Y</entry>
    293       <entry/>
    294     </row>
    295     <row>
    296       <entry>20.4</entry>
    297       <entry>Memory</entry>
    298       <entry/>
    299       <entry/>
    300     </row>
    301     <row>
    302       <entry>20.4.1</entry>
    303       <entry>The default allocator</entry>
    304       <entry>Y</entry>
    305       <entry/>
    306     </row>
    307     <row>
    308       <entry>20.4.2</entry>
    309       <entry>Raw storage iterator</entry>
    310       <entry>Y</entry>
    311       <entry/>
    312     </row>
    313     <row>
    314       <entry>20.4.3</entry>
    315       <entry>Temporary buffers</entry>
    316       <entry>Y</entry>
    317       <entry/>
    318     </row>
    319     <row>
    320       <entry>20.4.4</entry>
    321       <entry>Specialized algorithms</entry>
    322       <entry>Y</entry>
    323       <entry/>
    324     </row>
    325     <row>
    326       <entry>20.4.4.1</entry>
    327       <entry><code>uninitialized_copy</code></entry>
    328       <entry>Y</entry>
    329       <entry/>
    330     </row>
    331     <row>
    332       <entry>20.4.4.2</entry>
    333       <entry><code>uninitialized_fill</code></entry>
    334       <entry>Y</entry>
    335       <entry/>
    336     </row>
    337     <row>
    338       <entry>20.4.4.3</entry>
    339       <entry><code>uninitialized_fill_n</code></entry>
    340       <entry>Y</entry>
    341       <entry/>
    342     </row>
    343     <row>
    344       <entry>20.4.5</entry>
    345       <entry>Class template <code>auto_ptr</code></entry>
    346       <entry>Y</entry>
    347       <entry/>
    348     </row>
    349     <row>
    350       <entry>20.4.6</entry>
    351       <entry>C library</entry>
    352       <entry>Y</entry>
    353       <entry/>
    354     </row>
    355     <row>
    356       <entry>
    357 	<emphasis>21</emphasis>
    358       </entry>
    359       <entry namest="c2" nameend="c4" align="left">
    360 	<emphasis>Strings</emphasis>
    361       </entry>
    362     </row>
    363     <row>
    364       <entry>21.1</entry>
    365       <entry>Character traits</entry>
    366       <entry/>
    367       <entry/>
    368     </row>
    369     <row>
    370       <entry>21.1.1</entry>
    371       <entry>Character traits requirements</entry>
    372       <entry>Y</entry>
    373       <entry/>
    374     </row>
    375     <row>
    376       <entry>21.1.2</entry>
    377       <entry>traits typedef</entry>
    378       <entry>Y</entry>
    379       <entry/>
    380     </row>
    381     <row>
    382       <entry>21.1.3</entry>
    383       <entry><code>char_traits</code> specializations</entry>
    384       <entry/>
    385       <entry/>
    386     </row>
    387     <row>
    388       <entry>21.1.3.1</entry>
    389       <entry>struct <code>char_traits&lt;char&gt;</code></entry>
    390       <entry>Y</entry>
    391       <entry/>
    392     </row>
    393     <row>
    394       <entry>21.1.3.2</entry>
    395       <entry>struct <code>char_traits&lt;wchar_t&gt;</code></entry>
    396       <entry>Y</entry>
    397       <entry/>
    398     </row>
    399     <row>
    400       <entry>21.2</entry>
    401       <entry>String classes</entry>
    402       <entry>Y</entry>
    403       <entry/>
    404     </row>
    405     <row>
    406       <entry>21.3</entry>
    407       <entry>Class template <code>basic_string</code></entry>
    408       <entry>Y</entry>
    409       <entry/>
    410     </row>
    411     <row>
    412       <entry>21.4</entry>
    413       <entry>Null-terminated sequence utilities</entry>
    414       <entry>Y</entry>
    415       <entry>C library dependency</entry>
    416     </row>
    417     <row>
    418       <entry>
    419       	<emphasis>22</emphasis>
    420       </entry>
    421       <entry namest="c2" nameend="c4" align="left">
    422 	<emphasis>Localization</emphasis>
    423       </entry>
    424     </row>
    425     <row>
    426       <entry>22.1</entry>
    427       <entry>Locales</entry>
    428       <entry/>
    429       <entry/>
    430     </row>
    431     <row>
    432       <entry>22.1.1</entry>
    433       <entry>Class <code>locale</code></entry>
    434       <entry>Y</entry>
    435       <entry/>
    436     </row>
    437     <row>
    438       <entry>22.1.2</entry>
    439       <entry><code>locale</code> globals</entry>
    440       <entry>Y</entry>
    441       <entry/>
    442     </row>
    443     <row>
    444       <entry>22.1.3</entry>
    445       <entry>Convenience interfaces</entry>
    446       <entry/>
    447       <entry/>
    448     </row>
    449     <row>
    450       <entry>22.1.3.1</entry>
    451       <entry>Character classification</entry>
    452       <entry>Y</entry>
    453       <entry/>
    454     </row>
    455     <row>
    456       <entry>22.1.3.2</entry>
    457       <entry>Character conversions</entry>
    458       <entry>Y</entry>
    459       <entry/>
    460     </row>
    461     <row>
    462       <entry>22.2</entry>
    463       <entry>Standard locale categories</entry>
    464       <entry/>
    465       <entry/>
    466     </row>
    467     <row>
    468       <entry>22.2.1</entry>
    469       <entry><code>ctype</code></entry>
    470       <entry>Y</entry>
    471       <entry/>
    472     </row>
    473     <row>
    474       <entry>22.2.2</entry>
    475       <entry>Numeric</entry>
    476       <entry/>
    477       <entry/>
    478     </row>
    479     <row>
    480       <entry>22.2.2.1</entry>
    481       <entry><code>num_get</code></entry>
    482       <entry>Y</entry>
    483       <entry/>
    484     </row>
    485     <row>
    486       <entry>22.2.2.2</entry>
    487       <entry><code>num_put</code></entry>
    488       <entry>Y</entry>
    489       <entry/>
    490     </row>
    491     <row>
    492       <entry>22.2.3</entry>
    493       <entry><code>num_punct</code></entry>
    494       <entry>Y</entry>
    495       <entry/>
    496     </row>
    497     <row>
    498       <entry>22.2.4</entry>
    499       <entry><code>collate</code></entry>
    500       <entry>Y</entry>
    501       <entry/>
    502     </row>
    503     <row>
    504       <entry>22.2.5</entry>
    505       <entry>Time</entry>
    506       <entry/>
    507       <entry/>
    508     </row>
    509     <row>
    510       <entry>22.2.5.1</entry>
    511       <entry><code>time_get</code></entry>
    512       <entry>Y</entry>
    513       <entry/>
    514     </row>
    515     <row>
    516       <entry>22.2.5.2</entry>
    517       <entry><code>time_get_byname</code></entry>
    518       <entry>Y</entry>
    519       <entry/>
    520     </row>
    521     <row>
    522       <entry>22.2.5.3</entry>
    523       <entry><code>time_put</code></entry>
    524       <entry>Y</entry>
    525       <entry/>
    526     </row>
    527     <row>
    528       <entry>22.2.5.3</entry>
    529       <entry><code>time_put_byname</code></entry>
    530       <entry>Y</entry>
    531       <entry/>
    532     </row>
    533     <row>
    534       <entry>22.2.6</entry>
    535       <entry>Monetary</entry>
    536       <entry/>
    537       <entry/>
    538     </row>
    539     <row>
    540       <entry>22.2.6.1</entry>
    541       <entry><code>money_get</code></entry>
    542       <entry>Y</entry>
    543       <entry/>
    544     </row>
    545     <row>
    546       <entry>22.2.6.2</entry>
    547       <entry><code>money_put</code></entry>
    548       <entry>Y</entry>
    549       <entry/>
    550     </row>
    551     <row>
    552       <entry>22.2.6.3</entry>
    553       <entry><code>money_punct</code></entry>
    554       <entry>Y</entry>
    555       <entry/>
    556     </row>
    557     <row>
    558       <entry>22.2.6.4</entry>
    559       <entry><code>money_punct_byname</code></entry>
    560       <entry>Y</entry>
    561       <entry/>
    562     </row>
    563     <row>
    564       <entry>22.2.7</entry>
    565       <entry><code>messages</code></entry>
    566       <entry>Y</entry>
    567       <entry/>
    568     </row>
    569     <row>
    570       <entry>22.2.8</entry>
    571       <entry>Program-defined facets</entry>
    572       <entry>Y</entry>
    573       <entry/>
    574     </row>
    575     <row>
    576       <entry>22.3</entry>
    577       <entry>C Library Locales</entry>
    578       <entry>Y</entry>
    579       <entry/>
    580     </row>
    581     <row>
    582       <entry>
    583 	<emphasis>23</emphasis>
    584       </entry>
    585       <entry namest="c2" nameend="c4" align="left">
    586 	<emphasis>Containers</emphasis>
    587       </entry>
    588     </row>
    589     <row>
    590       <entry>23.1</entry>
    591       <entry>Container requirements</entry>
    592       <entry>Y</entry>
    593       <entry/>
    594     </row>
    595     <row>
    596       <entry>23.2</entry>
    597       <entry>Sequence containers</entry>
    598       <entry/>
    599       <entry/>
    600     </row>
    601     <row>
    602       <entry>23.2.1</entry>
    603       <entry>Class template <code>deque</code></entry>
    604       <entry>Y</entry>
    605       <entry/>
    606     </row>
    607     <row>
    608       <entry>23.2.2</entry>
    609       <entry>Class template <code>list</code></entry>
    610       <entry>Y</entry>
    611       <entry/>
    612     </row>
    613     <row>
    614       <entry>23.2.3</entry>
    615       <entry>Adaptors</entry>
    616       <entry/>
    617       <entry/>
    618     </row>
    619     <row>
    620       <entry>23.2.3.1</entry>
    621       <entry>Class template <code>queue</code></entry>
    622       <entry>Y</entry>
    623       <entry/>
    624     </row>
    625     <row>
    626       <entry>23.2.3.2</entry>
    627       <entry>Class template <code>priority_queue</code></entry>
    628       <entry>Y</entry>
    629       <entry/>
    630     </row>
    631     <row>
    632       <entry>23.2.3.3</entry>
    633       <entry>Class template <code>stack</code></entry>
    634       <entry>Y</entry>
    635       <entry/>
    636     </row>
    637     <row>
    638       <entry>23.2.4</entry>
    639       <entry>Class template <code>vector</code></entry>
    640       <entry>Y</entry>
    641       <entry/>
    642     </row>
    643     <row>
    644       <entry>23.2.5</entry>
    645       <entry>Class <code>vector&lt;bool&gt;</code></entry>
    646       <entry>Y</entry>
    647       <entry/>
    648     </row>
    649     <row>
    650       <entry>23.3</entry>
    651       <entry>Associative containers</entry>
    652       <entry/>
    653       <entry/>
    654     </row>
    655     <row>
    656       <entry>23.3.1</entry>
    657       <entry>Class template <code>map</code></entry>
    658       <entry>Y</entry>
    659       <entry/>
    660     </row>
    661     <row>
    662       <entry>23.3.2</entry>
    663       <entry>Class template <code>multimap</code></entry>
    664       <entry>Y</entry>
    665       <entry/>
    666     </row>
    667     <row>
    668       <entry>23.3.3</entry>
    669       <entry>Class template <code>set</code></entry>
    670       <entry>Y</entry>
    671       <entry/>
    672     </row>
    673     <row>
    674       <entry>23.3.4</entry>
    675       <entry>Class template <code>multiset</code></entry>
    676       <entry>Y</entry>
    677       <entry/>
    678     </row>
    679     <row>
    680       <entry>
    681 	<emphasis>24</emphasis>
    682       </entry>
    683       <entry namest="c2" nameend="c4" align="left">
    684 	<emphasis>Iterators</emphasis>
    685       </entry>
    686     </row>
    687     <row>
    688       <entry>24.1</entry>
    689       <entry>Requirements</entry>
    690       <entry>Y</entry>
    691       <entry/>
    692     </row>
    693     <row>
    694       <entry>24.2</entry>
    695       <entry>Header <code>&lt;iterator&gt;</code> synopsis</entry>
    696       <entry>Y</entry>
    697       <entry/>
    698     </row>
    699     <row>
    700       <entry>24.3</entry>
    701       <entry>Iterator primitives</entry>
    702       <entry>Y</entry>
    703       <entry/>
    704     </row>
    705     <row>
    706       <entry>24.4</entry>
    707       <entry>Predefined iterators and Iterator adaptors</entry>
    708       <entry/>
    709       <entry/>
    710     </row>
    711     <row>
    712       <entry>24.4.1</entry>
    713       <entry>Reverse iterators</entry>
    714       <entry>Y</entry>
    715       <entry/>
    716     </row>
    717     <row>
    718       <entry>24.4.2</entry>
    719       <entry>Insert iterators</entry>
    720       <entry>Y</entry>
    721       <entry/>
    722     </row>
    723     <row>
    724       <entry>24.5</entry>
    725       <entry>Stream iterators</entry>
    726       <entry/>
    727       <entry/>
    728     </row>
    729     <row>
    730       <entry>24.5.1</entry>
    731       <entry>Class template <code>istream_iterator</code></entry>
    732       <entry>Y</entry>
    733       <entry/>
    734     </row>
    735     <row>
    736       <entry>24.5.2</entry>
    737       <entry>Class template <code>ostream_iterator</code></entry>
    738       <entry>Y</entry>
    739       <entry/>
    740     </row>
    741     <row>
    742       <entry>24.5.3</entry>
    743       <entry>Class template <code>istreambuf_iterator</code></entry>
    744       <entry>Y</entry>
    745       <entry/>
    746     </row>
    747     <row>
    748       <entry>24.5.4</entry>
    749       <entry>Class template <code>ostreambuf_iterator</code></entry>
    750       <entry>Y</entry>
    751       <entry/>
    752     </row>
    753     <row>
    754       <entry>
    755 	<emphasis>25</emphasis>
    756       </entry>
    757       <entry namest="c2" nameend="c4" align="left">
    758 	<emphasis>Algorithms</emphasis>
    759       </entry>
    760     </row>
    761     <row>
    762       <entry>25.1</entry>
    763       <entry>Non-modifying sequence operations</entry>
    764       <entry>Y</entry>
    765       <entry/>
    766     </row>
    767     <row>
    768       <entry>25.2</entry>
    769       <entry>Mutating sequence operations</entry>
    770       <entry>Y</entry>
    771       <entry/>
    772     </row>
    773     <row>
    774       <entry>25.3</entry>
    775       <entry>Sorting and related operations</entry>
    776       <entry>Y</entry>
    777       <entry/>
    778     </row>
    779     <row>
    780       <entry>25.4</entry>
    781       <entry>C library algorithms</entry>
    782       <entry>Y</entry>
    783       <entry/>
    784     </row>
    785     <row>
    786       <entry>
    787       <emphasis>26</emphasis>
    788       </entry>
    789       <entry namest="c2" nameend="c4" align="left">
    790 	<emphasis>Numerics</emphasis>
    791       </entry>
    792     </row>
    793     <row>
    794       <entry>26.1</entry>
    795       <entry>Numeric type requirements</entry>
    796       <entry>Y</entry>
    797       <entry/>
    798     </row>
    799     <row>
    800       <entry>26.2</entry>
    801       <entry>Complex numbers</entry>
    802       <entry>Y</entry>
    803       <entry/>
    804     </row>
    805     <row>
    806       <entry>26.3</entry>
    807       <entry>Numeric arrays</entry>
    808       <entry/>
    809       <entry/>
    810     </row>
    811     <row>
    812       <entry>26.3.1</entry>
    813       <entry>Header <code>&lt;valarray&gt;</code> synopsis</entry>
    814       <entry>Y</entry>
    815       <entry/>
    816     </row>
    817     <row>
    818       <entry>26.3.2</entry>
    819       <entry>Class template <code>valarray</code></entry>
    820       <entry>Y</entry>
    821       <entry/>
    822     </row>
    823     <row>
    824       <entry>26.3.3</entry>
    825       <entry><code>valarray</code> non-member operations</entry>
    826       <entry>Y</entry>
    827       <entry/>
    828     </row>
    829     <row>
    830       <entry>26.3.4</entry>
    831       <entry>Class <code>slice</code></entry>
    832       <entry>Y</entry>
    833       <entry/>
    834     </row>
    835     <row>
    836       <entry>26.3.5</entry>
    837       <entry>Class template <code>slice_array</code></entry>
    838       <entry>Y</entry>
    839       <entry/>
    840     </row>
    841     <row>
    842       <entry>26.3.6</entry>
    843       <entry>Class <code>gslice</code></entry>
    844       <entry>Y</entry>
    845       <entry/>
    846     </row>
    847     <row>
    848       <entry>26.3.7</entry>
    849       <entry>Class template <code>gslice_array</code></entry>
    850       <entry>Y</entry>
    851       <entry/>
    852     </row>
    853     <row>
    854       <entry>26.3.8</entry>
    855       <entry>Class template <code>mask_array</code></entry>
    856       <entry>Y</entry>
    857       <entry/>
    858     </row>
    859     <row>
    860       <entry>26.3.9</entry>
    861       <entry>Class template <code>indirect_array</code></entry>
    862       <entry>Y</entry>
    863       <entry/>
    864     </row>
    865     <row>
    866       <entry>26.4</entry>
    867       <entry>Generalized numeric operations</entry>
    868       <entry/>
    869       <entry/>
    870     </row>
    871     <row>
    872       <entry>26.4.1</entry>
    873       <entry><code>accumulate</code></entry>
    874       <entry>Y</entry>
    875       <entry/>
    876     </row>
    877     <row>
    878       <entry>26.4.2</entry>
    879       <entry><code>inner_product</code></entry>
    880       <entry>Y</entry>
    881       <entry/>
    882     </row>
    883     <row>
    884       <entry>26.4.3</entry>
    885       <entry><code>partial_sum</code></entry>
    886       <entry>Y</entry>
    887       <entry/>
    888     </row>
    889     <row>
    890       <entry>26.4.4</entry>
    891       <entry><code>adjacent_difference</code></entry>
    892       <entry>Y</entry>
    893       <entry/>
    894     </row>
    895     <row>
    896       <entry>26.4.5</entry>
    897       <entry>iota</entry>
    898       <entry>Y</entry>
    899       <entry/>
    900     </row>
    901     <row>
    902       <entry>26.5</entry>
    903       <entry>C Library</entry>
    904       <entry>Y</entry>
    905       <entry/>
    906     </row>
    907     <row>
    908       <entry>
    909 	<emphasis>27</emphasis>
    910       </entry>
    911       <entry namest="c2" nameend="c4" align="left">
    912 	<emphasis>Input/output</emphasis>
    913       </entry>
    914     </row>
    915     <row>
    916       <entry>27.1</entry>
    917       <entry>Requirements</entry>
    918       <entry>Y</entry>
    919       <entry/>
    920     </row>
    921     <row>
    922       <entry>27.2</entry>
    923       <entry>Forward declarations</entry>
    924       <entry>Y</entry>
    925       <entry/>
    926     </row>
    927     <row>
    928       <entry>27.3</entry>
    929       <entry>Standard iostream objects</entry>
    930       <entry>Y</entry>
    931       <entry/>
    932     </row>
    933     <row>
    934       <entry>27.3.1</entry>
    935       <entry>Narrow stream objects</entry>
    936       <entry>Y</entry>
    937       <entry/>
    938     </row>
    939     <row>
    940       <entry>27.3.2</entry>
    941       <entry>Wide stream objects</entry>
    942       <entry>Y</entry>
    943       <entry/>
    944     </row>
    945     <row>
    946       <entry>27.4</entry>
    947       <entry>Iostreams base classes</entry>
    948       <entry>Y</entry>
    949       <entry/>
    950     </row>
    951     <row>
    952       <entry>27.5</entry>
    953       <entry>Stream buffers</entry>
    954       <entry>Y</entry>
    955       <entry/>
    956     </row>
    957     <row>
    958       <entry>27.6</entry>
    959       <entry>Formatting and manipulators</entry>
    960       <entry>Y</entry>
    961       <entry/>
    962     </row>
    963     <row>
    964       <entry>27.7</entry>
    965       <entry>String-based streams</entry>
    966       <entry>Y</entry>
    967       <entry/>
    968     </row>
    969     <row>
    970       <entry>27.8</entry>
    971       <entry>File-based streams</entry>
    972       <entry>Y</entry>
    973       <entry/>
    974     </row>
    975     <row>
    976       <entry>
    977       	<emphasis>Appendix D</emphasis>
    978       </entry>
    979       <entry namest="c2" nameend="c4" align="left">
    980 	<emphasis>Compatibility features</emphasis>
    981       </entry>
    982     </row>
    983     <row>
    984       <entry>D.1</entry>
    985       <entry>Increment operator with bool operand</entry>
    986       <entry/>
    987       <entry/>
    988     </row>
    989     <row>
    990       <entry>D.2</entry>
    991       <entry><code>static</code> keyword</entry>
    992       <entry/>
    993       <entry/>
    994     </row>
    995     <row>
    996       <entry>D.3</entry>
    997       <entry>Access declarations</entry>
    998       <entry/>
    999       <entry/>
   1000     </row>
   1001     <row>
   1002       <entry>D.4</entry>
   1003       <entry>Implicit conversion from const strings</entry>
   1004       <entry/>
   1005       <entry/>
   1006     </row>
   1007     <row>
   1008       <entry>D.5</entry>
   1009       <entry>C standard library headers</entry>
   1010       <entry/>
   1011       <entry/>
   1012     </row>
   1013     <row>
   1014       <entry>D.6</entry>
   1015       <entry>Old iostreams members</entry>
   1016       <entry/>
   1017       <entry/>
   1018     </row>
   1019     <row>
   1020       <entry>D.7</entry>
   1021       <entry>char* streams</entry>
   1022       <entry/>
   1023       <entry/>
   1024     </row>
   1025 
   1026   </tbody>
   1027 </tgroup>
   1028 </table>
   1029 </section>
   1030 
   1031 <section xml:id="iso.1998.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
   1032 
   1033 
   1034    <para>
   1035      The ISO standard defines the following phrase:
   1036    </para>
   1037    <blockquote>
   1038      <variablelist>
   1039      <varlistentry>
   1040        <term>
   1041 	 <code>[1.3.5] implementation-defined behavior</code>
   1042        </term>
   1043        <listitem>
   1044 	 <para>
   1045 	 Behavior, for a well-formed program construct and correct data, that
   1046 	 depends on the implementation <emphasis>and that each implementation
   1047 	 shall document</emphasis>.
   1048 	 </para>
   1049        </listitem>
   1050      </varlistentry>
   1051      </variablelist>
   1052    </blockquote>
   1053    <para>
   1054      We do so here, for the C++ library only.  Behavior of the
   1055      compiler, linker, runtime loader, and other elements of "the
   1056      implementation" are documented elsewhere.  Everything listed
   1057      in Annex B, Implementation Qualities, are also part of the
   1058      compiler, not the library.
   1059    </para>
   1060    <para>
   1061      For each entry, we give the section number of the standard, when
   1062      applicable.  This list is probably incomplet and inkorrekt.
   1063    </para>
   1064    <para>
   1065      <emphasis>[1.9]/11 #3</emphasis> If <code>isatty(3)</code> is true, then
   1066       interactive stream support is implied.
   1067    </para>
   1068    <para>
   1069      <emphasis>[17.4.4.5]</emphasis> Non-reentrant functions are probably best
   1070       discussed in the various sections on multithreading (see above).
   1071    </para>
   1072    <!-- [17.4.4.8]/3 says any function that doesn't have an exception-spec
   1073 	can throw whatever we want; see also its footnote.  Let's list those
   1074 	in the sections where the function itself occurs.
   1075    -->
   1076    <para><emphasis>[18.1]/4</emphasis> The type of <code>NULL</code> is described
   1077       under <link linkend="std.support.types.null">Support</link>.
   1078    </para>
   1079    <para><emphasis>[18.3]/8</emphasis> Even though it's listed in the library
   1080       sections, libstdc++ has zero control over what the cleanup code hands
   1081       back to the runtime loader.  Talk to the compiler people.  :-)
   1082    </para>
   1083    <para><emphasis>[18.4.2.1]/5</emphasis> (bad_alloc),
   1084       <emphasis>[18.5.2]/5</emphasis> (bad_cast),
   1085       <emphasis>[18.5.3]/5</emphasis> (bad_typeid),
   1086       <emphasis>[18.6.1]/8</emphasis> (exception),
   1087       <emphasis>[18.6.2.1]/5</emphasis> (bad_exception):  The <code>what()</code>
   1088       member function of class <code>std::exception</code>, and these other
   1089       classes publicly derived from it, returns the name of the
   1090       class, e.g. <literal>"std::bad_alloc"</literal>.
   1091    </para>
   1092    <para><emphasis>[18.5.1]/7</emphasis> The return value of
   1093       <code>std::type_info::name()</code> is the mangled type name.
   1094       You will need to call <code>c++filt</code> and pass the names as
   1095       command-line parameters to demangle them, or call a
   1096       <link linkend="manual.ext.demangle">runtime demangler function</link>.
   1097    </para>
   1098    <para><emphasis>[20.1.5]/5</emphasis> <emphasis>"Implementors are encouraged to
   1099       supply libraries that can accept allocators that encapsulate more
   1100       general memory models and that support non-equal instances.  In such
   1101       implementations, any requirements imposed on allocators by containers
   1102       beyond those requirements that appear in Table 32, and the semantics
   1103       of containers and algorithms when allocator instances compare
   1104       non-equal, are implementation-defined."</emphasis>  There is experimental
   1105       support for non-equal allocators in the standard containers in C++98
   1106       mode. There are no additional requirements on allocators. It is undefined
   1107       behaviour to swap two containers if their allocators are not equal.
   1108    </para>
   1109    <para><emphasis>[21.1.3.1]/3,4</emphasis>,
   1110       <emphasis>[21.1.3.2]/2</emphasis>,
   1111       <emphasis>[21.3]/6 basic_string::iterator, basic_string::const_iterator</emphasis>,
   1112       <emphasis>[23.*]'s foo::iterator</emphasis>,
   1113       <emphasis>[27.*]'s foo::*_type</emphasis>,
   1114       <emphasis>others...</emphasis>
   1115       Nope, these types are called implementation-defined because you
   1116       shouldn't be taking advantage of their underlying types.  Listing them
   1117       here would defeat the purpose.  :-)
   1118    </para>
   1119    <para><emphasis>[21.1.3.1]/5</emphasis> I don't really know about
   1120       the <type>mbstate_t</type> stuff... see
   1121       the <link linkend="std.localization.facet.codecvt"><code>codecvt</code>
   1122       notes</link> for what does exist.
   1123    </para>
   1124    <para><emphasis>[22.*]</emphasis> Anything and everything we have on locale
   1125       implementation will be described under
   1126       <link linkend="std.localization.locales.locale">Localization</link>.
   1127    </para>
   1128    <para><emphasis>[23.*]</emphasis> All of the containers in this clause
   1129      define <type>size_type</type> as <type>std::size_t</type> and
   1130      <type>difference_type</type> as <type>std::ptrdiff_t</type>.
   1131    </para>
   1132    <para><emphasis>[26.2.8]/9</emphasis> I have no idea what
   1133       <code>complex&lt;T&gt;</code>'s <code>pow(0,0)</code> returns.
   1134    </para>
   1135    <para><emphasis>[27.4.2.4]/2</emphasis> Calling
   1136       <code>std::ios_base::sync_with_stdio</code> after I/O has already been
   1137       performed on the standard stream objects will
   1138       flush the buffers, and <!-- this line might go away -->
   1139       destroy and recreate the underlying buffer instances.  Whether or not
   1140       the previously-written I/O is destroyed in this process depends mostly
   1141       on the <code>--enable-libio</code> choice:  for stdio, if the written
   1142       data is already in the stdio buffer, the data may be completely safe!
   1143    </para>
   1144    <para><emphasis>[27.6.1.1.2]</emphasis>,
   1145       <emphasis>[27.6.2.3]</emphasis> The I/O sentry ctor and dtor can perform
   1146       additional work than the minimum required.  We are not currently taking
   1147       advantage of this yet.
   1148    </para>
   1149    <para><emphasis>[27.7.1.3]/16</emphasis>,
   1150       <emphasis>[27.8.1.4]/10</emphasis>
   1151       The effects of <code>pubsetbuf/setbuf</code> are described in the
   1152       <link linkend="std.io">Input and Output</link> chapter.
   1153    </para>
   1154    <para><emphasis>[27.8.1.4]/16</emphasis> Calling <code>fstream::sync</code> when
   1155       a get area exists will... whatever <code>fflush()</code> does, I think.
   1156    </para>
   1157 
   1158 </section>
   1159 
   1160 </section>
   1161