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