stdcxx-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Stdcxx Wiki] Update of "Cpp0x" by EricLemings
Date Wed, 04 Jun 2008 18:05:28 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Stdcxx Wiki" for change notification.

The following page has been changed by EricLemings:
http://wiki.apache.org/stdcxx/Cpp0x

The comment on the change is:
Transcribing general notes from a draft development plan written in March 2008.

------------------------------------------------------------------------------
+ = Development Plan =
+ 
+ The following development plans apply to 4.3.x series of releases leading up to the 5.x
major release tentatively scheduled sometime after the current C++ draft standard is ratified.
+ 
+ == Configuration ==
+ 
+ The release distribution(s) will provide a configuration option that allows users to explicitly
enable or disable support for C++0x library specifications and extensions.  In 4.3.x releases,
C++0x support is disabled by default if the option is not explicitly specified by the user.
+ 
+ If C++0x support is enabled, an additional configuration macro (or macros) will be defined
within the library that specifically indicates whether C++0x specifications should be enabled.
 (The exact name of this macro and how and where it is defined is unspecified for purposes
of this document.)
+ 
+ == Affected Headers ==
+ 
+ New headers specified by the C++0x extensions will reside in the {{{$TOPDIR/include}}} directory
(where {{{$TOPDIR}}} indicates the source distribution and/or installation directory) with
the filenames specified by the standard.  (Note especially, there is no {{{std::tr1}}} namespace
or associated {{{tr1}}} directory.)  Consequently, compiler search paths for header files
are unchanged.
+ 
+ The new headers specified by the C++0x draft standard are shown in the following list:
+ 
+  ||||||<tablestyle="width: 50%">'''New C++0x Headers'''||
+  ||{{{<type_traits>}}}||{{{<random>}}}||{{{<tuple>}}}||
+  ||{{{<array>}}}||{{{<unordered_set>}}}||{{{<unordered_map>}}}||
+  ||{{{<regex>}}}||{{{<ccomplex>}}}||{{{<complex.h>}}}||
+  ||{{{<cfenv>}}}||{{{<fenv.h>}}}||{{{<cinttypes>}}}||
+  ||{{{<inttypes.h>}}}||{{{<cstdbool>}}}||{{{<stdbool.h>}}}||
+  ||{{{<cstdint>}}}||{{{<stdint.h>}}}||{{{<ctgmath>}}}||
+  ||{{{<tgmath.h>}}}|| || ||
+ 
+ Note, some of the new headers -- the C headers with a {{{.h}}} suffix -- are actually required
by ISO/IEC 9899:1999 (a.k.a. C99) and consequently specified as part of the C++0x draft standard.
 While these headers are technically a part of the C++ standard library, they do not fall
within the scope of this development plan.
+ 
+ Modified headers -- existing headers for which changes are mandated by the standard -- will
contain the appropriate conditional guards (utilizing the configuration macro(s) specified
above) to enable the implementation of requirements specific to the C++0x draft standard.
 The modified headers specified by the C++0x draft standard are shown in the following table:
+ 
+  ||||||<tablestyle="width: 50%">'''Modified C++0x Headers'''||
+  ||{{{<functional>}}}||{{{<memory>}}}||{{{<utility>}}}||
+  ||{{{<complex>}}}||{{{<cctype>}}}||{{{<ctype.h>}}}||
+  ||{{{<cfloat>}}}||{{{<float.h>}}}||{{{<ios>}}}||
+  ||{{{<climits>}}}||{{{<limits.h>}}}||{{{<locale>}}}||
+  ||{{{<cmath>}}}||{{{<math.h>}}}||{{{<cstdarg>}}}||
+  ||{{{<stdarg.h>}}}||{{{<cstdio>}}}||{{{<cstdlib>}}}||
+  ||{{{<stdlib.h>}}}||{{{<ctime>}}}||{{{<wchar.h>}}}||
+  ||{{{<cwctype>}}}||{{{<wctype.h>}}}|| ||
+ 
+ Note again, some of these headers -- the C headers in particular -- contain normative changes
specified by C99 and are thus outside the scope of this development plan.
+ 
+ == Components ==
+ 
+ The new C++0x features are classified according to components shown in the following list:
+ 
+  * General utilities library (Chapter 20, Clause [utilities])
+   * Tuples (Section 3, Clause [tuple])
+   * Type traits (Section 4, Clause [meta])
+   * Function objects (Section 5, Clause [function.objects])
+    * Reference wrappers (Section 5.5, Clause [refwrap])
+   * Smart pointers (Section 6, Clause [memory])
+  * Numerical library (Chapter 26, Clause [numerics])
+   * Random number generation (Section 4, Clause [rand])
+  * Containers (Chapter 23, Clause [containers])
+   * Fixed-size arrays (Section 2.1, Clause [array])
+   * Unordered associative containers (Section 4, Clause [unord])
+  * Regular expressions (Chapter 28, Clause [re])
+ 
+ Note, this is not a complete list of C++0x features: these are only the components that
fall within the scope of this development plan.
+ 
+ 
  = Online Resources =
-  * [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf ISO/IEC TR 19768:
C++ Library Extensions TR1].  The normative specification.
-  * [http://en.wikipedia.org/wiki/Technical_Report_1 Technical Report 1 (Wikipedia)].  Good
overview of the TR1 extensions.
-  
  
+  * [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf ISO/IEC TR 19768:
C++ Library Extensions TR1].  The original draft specification.  (Now obsolete since modifications
have been made in the latest C++ draft standard.)
+  * [http://en.wikipedia.org/wiki/Technical_Report_1 Technical Report 1 (Wikipedia)].  General
overview of the TR1 extensions.
+ 

Mime
View raw message