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. +
