Return-Path: Delivered-To: apmail-stdcxx-commits-archive@www.apache.org Received: (qmail 28693 invoked from network); 4 Jun 2008 18:06:00 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 4 Jun 2008 18:06:00 -0000 Received: (qmail 27068 invoked by uid 500); 4 Jun 2008 18:06:03 -0000 Delivered-To: apmail-stdcxx-commits-archive@stdcxx.apache.org Received: (qmail 27045 invoked by uid 500); 4 Jun 2008 18:06:03 -0000 Mailing-List: contact commits-help@stdcxx.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@stdcxx.apache.org Delivered-To: mailing list commits@stdcxx.apache.org Received: (qmail 27036 invoked by uid 99); 4 Jun 2008 18:06:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Jun 2008 11:06:03 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.130] (HELO eos.apache.org) (140.211.11.130) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Jun 2008 18:05:11 +0000 Received: from eos.apache.org (localhost [127.0.0.1]) by eos.apache.org (Postfix) with ESMTP id 4DC4ED2EA for ; Wed, 4 Jun 2008 18:05:28 +0000 (GMT) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Apache Wiki To: commits@stdcxx.apache.org Date: Wed, 04 Jun 2008 18:05:28 -0000 Message-ID: <20080604180528.24194.93049@eos.apache.org> Subject: [Stdcxx Wiki] Update of "Cpp0x" by EricLemings X-Virus-Checked: Checked by ClamAV on apache.org 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: + + ||||||'''New C++0x Headers'''|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}|| || || + + 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: + + ||||||'''Modified C++0x Headers'''|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}||{{{}}}|| + ||{{{}}}||{{{}}}|| || + + 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. +