OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libstdc++-v3/] [doc/] [xml/] [manual/] [status_cxx1998.xml] - Blame information for rev 745

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.