C++ 0x(C++ 09)新标准全部革新提案文档列表

Document number: N2869=09-0059

Alisdair Meredith
2009-03-23

State of C++ Evolution (Post San Francisco 2008)

This paper presents a quick summary of all papers submitted to WG21 for consideration by the Evolution Working Group, with an indication of their progress towards inclusion in the next C++ Standard or future TRs. It is based on the pre-San Francisco 2008 mailing, with additional documents made available during the San Francisco meeting itself.

There are no library papers here, unless highlighted by the Registration Document submitted following the Portland meeting. Otherwise this list focuses entirely on changes affecting clauses 1 -> 16. Library progress can be followed in the companion document N2870. Note that most of the overlap is related to threading and atomic libraries.

Note on progress

This document represents all papers that have been adopted for C++0x CD1. Following the San Francsico meeting it is expected that the current working paper, as ammended by the papers highlighed in this document, shall be forwarded by the SC22 secretariat for ballotting as a CD for the next revision of the C++ standard. As such, C++0x is now feature complete and the only expected work remaining is resolution of ballot comments and defects until we poll for FCD, provisionally toward the end of 2009.

Note on earlier documents

Since the author started tracking library papers, a number of documents have been handed to ISO for ballotting. The table below presents the last draught of these documents, together with a paper describing the history of papers contributing to that document, along with its current status.

Much of the library development that has gone into the next standard occurred during the development of Library TR1. It might be helpful to refer to the history of that document when looking for the evolution of the C++0x standard library below.

DocumentHistoryStatusTitle
N1836N2364DTRLibrary TR1
N2800N2871CD1C++0x Language
N2732 PDTRDecimal TR
N2717N2364FCDMath Function Binding

Key to the tables

Papers have been grouped according to theme, and related papers joined into the same row, even when submitted by different authors. The intent is to capture the feature, rather than the workflow. Papers are ordered by theme, and themes ordered by document number for the first submission on that theme.

Note that while the deadline for new proposals for C++0x is long past, it is not unusual to split a specific feature out of an existing proposal, to ease their progress. Likewise, existing Core Working Group issues may grow large enough to merit a paper that would not have previously shown on this list.

Proposals in a green font have advanced a category since the last meeting, those in red have moved back, while those in yellow are new or have been updated since the last meeting.

Proposals with a green background have been highlighted as the features that will be delivered in the next version of the standard in the Registration Document.

 

WG21 Number(s)TitleAuthors
Integrated into working paper
These propsals are already incorporated into the CD, N2800.
N1377 N1385 N1690 N1770 N1855 N1952 N2118 A Proposal to Add an Rvalue Reference to the C++ LanguageH. Hinnant, P. Dimov, D. Abrahams, J. Adamczyk, A. Hommel
N1610 Clarification of Initialization of Class Objects by rvaluesD. Abrahams, G. Powell
N1784 N1821 N2377 N2439 Extending Move Semantics To *this (Revision 2)Bronek Kozicki
N1381 N1604 N1617 N1720 static_assertR. Klarer, J. Maddock, B. Dawes, H. Hinnant
N1406 N1449 N1451 N1489 N2112 N2258 Template aliases for C++B. Stroustrup, G. Dos Reis, Mat Marcus, Walter E. Brown, Herb Sutter
N1427 N1945 N2187 N2402 N2635 N2657 Making Local Classes more UsefulAnthony Williams; John Spicer
N1448 N1960 N1987 Extern templateMatt Marcus, Garbriel Dos Reis, John Spicer
N1483 N1603 N1704 N2080 N2152 N2191 N2242 Variadic TemplatesD. Gregor, J. Järvi, G. Powell
N2488 N2555 Extending Variadic Template Template ParametersD. Gregor, E. Niebler
N1488 N1601 N2214 N2431 A name for the null pointer: nullptrH. Sutter, B. Stroustrup
N2656 Core issue 654: Convertibility of 0-literalH. Sutter, B. Stroustrup
N1509 N1890 N1919 N2100 N2215 N2385 N2531 N2672 Initializer listsBjarne Stroustrup, G. Dos Reis, J. S. Adamczyk
N1513 N1579 N1719 N2213 N2347 Strongly Typed EnumsH. Sutter, D. Miller, B. Stroustrup
N1520 N1616 N1722 N1791 Extended friend DeclarationsWilliam M. Miller
N1521 N1972 N1980 N2116 N2235 Generalized Constant ExpressionsGabriel Dos Reis
N1526 N2013 N2331 N2535 Namespace Association ("Strong Using")Benjamin Kosnik, Jason Merril
N1545 N1566 N1653 Synchronizing the C++ preprocessor with C99Clark Nelson, Paul Mensonides
N1546 N1877 N1971 N2140 N2165 N2252 N2301 N2341 Adding Alignment Support to the C++ Programming LanguageAttila (Farkas) Fehér, C. Nelson
N1564 N1627 "Conditionally-Supported Behavior"William M. Miller
N1727 Changing Undefined Behavior into Diagnosable ErrorsWilliam M. Miller
N1565 N1693 N1735 N1811 Adding the long long type to C++J. Stephen Adamczyk
N1746 N1988 Adding extended integer types to C++J. Stephen Adamczyk
N1581 N1618 N1895 N1986 Delegating ConstructorsH. Sutter, F. Glassborow
N1592 N2223 N2333 N2380 N2437 Explicit Conversion OperatorsLois Goldthwaite, Michael Wong, J Maurer, A Meredith
N1628 N1823 N1955 N2018 N2149 N2249 New Character Types in C++Lawrence Crowl
N1649 N1699 N1757 Right Angle BracketsDaveed Vandevoorde
N1721 N1794 N1894 N1984 Deducing the type of variable from its initializer expression J. Jaarvi, B. Stroustrup, G. Dos Reis
N2337 N2546 The Syntax of auto DeclarationsDaveed Vandevoorde
N1874 N1966 N2147 N2280 N2545 N2659 Thread-Local StorageLawrence Crowl
N1898 N2119 N2203 N2254 N2376 N2438 N2512 N2540 Inheriting ConstructorsM. Wong, A. Meredith, J. Maurer
N1944 N2052 N2171 N2239 A finer-grained alternative to sequence pointsClark Nelson
N1968 N2329 N2413 N2487 N2529 N2550 (monomorphic) Lambda expressions and closures for C++J Willcock, J Järvi, D Gregor, A Lumsdaine, J. Freeman, L. Crowl
N2561 N2658 Constness of lambda functionsJ Järvi, P Dimov, J Freeman
N1970 N2202 N2251 N2340 Proposed addition of __func__ predefined identifier from C99 Alisdair Meredith, J Maurer
N2047 N2145 N2324 N2381 N2393 N2427 Atomic operations with multi-threaded environmentsHans Boehm, Lawrence Crowl
N2492 N2556 N2664 C++ Data-Dependency Ordering: Atomics and Memory ModelP. McKenney, H.-J. Boehm, L. Crowl
N2052 N2171 N2300 N2334 N2429 Sequencing and the concurrency memory modelClark Nelson, Hans Boehm
N2053 N2146 N2295 N2384 N2442 Raw String LiteralsBeman Dawes
N2062 N2102 N2172 N2230 N2294 N2342 PODs unstrungBeman Dawes
N2096 N2179 Propagating exceptions when joining threadsPeter Dimov
N2148 N2325 N2382 N2444 N2513 N2670 Dynamic initialization and concurrencyLawrence Crowl
N2115 N2343 DecltypeJ. Järvi, B. Stroustrup, D. Gregor, J. Siek, G. Dos Reis
N2150 N2253 Extending sizeofJens Maurer
N2159 N2209 N2295 N2384 N2442 UTF8 LiteralsLawrence Crowl
N2170 Universal Character Names in LiteralsLawrence Crowl
N2210 N2326 N2346 Defaulted and Deleted FunctionsLawrence Crowl
N2248 N2430 N2544 Unrestricted UnionsL. Goldthwaite, A. Talbot, L. Crowl, J. Maurer
N2320 N2497 A Multi-threading Library for Standard C++H. Hinnant, B. Dawes, L. Crowl, J. Garland, A. Williams
N2383 N2440 Abandoning a ProcessLawrence Crowl
N2445 N2541 New function declaration syntax for deduced return typesJason Merrill (wording proposal by J. Järvi, B. Stroustrup, D. Gregor, J. Siek, G. Dos Reis)
N2459 N2547 Allow atomics use in signal handlersHans-J. Boehm
N2481 N2527 N2585 N2586 N2670 Minimal Support for Garbage Collection and Reachability-Based Leak Detection H.-J. Boehm, M. Spertus, C.Nelson
N2634 Solving the SFINAE problem for expressionsJ Spicer, S Adamczyk
N1959 N2354 N2426 N2628 N2673 N2756 Member InitializersM Spertus, Bill Seymour
N2042 N2081 N2193 N2307 N2398 N2421 N2501 N2617 N2676 N2710 N2741 N2773 Concepts (unified proposal)D. Gregor, B. Stroustrup, J. Siek, J. Widman
N2049 N2196 N2243 N2394 N2778 Proposal for new for-loopThorsten Ottosen, Doug Gregor
N2236 N2379 N2418 N2553 N2751 N2761 General Attributes for C++Michael Wong, Jens Maurer
N1511 N1892 N2282 N2378 N2750 N2765 Extensible LiteralsI. McIntosh, M. Wong, R. Mak, R.Klarer Bjarne Stroustrup
N2499 N2568 N2687 N2764 Forward declaration of enumerationsAlberto Ganesh Barbati
N2707 N2730 N2757 Expedited core issues handlingJens Maurer
N2361 N2493 N2643 N2782 C++ Data-Dependency Ordering: Function AnnotationPaul E. McKenney, L. Crowl
N2633 N2731 N2752 Improved support for bidirectional fencesPeter Dimov
N2748 Strong Compare and ExchangeLawrence Crowl
N2581 N2782 Named Requirements for C++0X ConceptsW Brown, J Widman, C Jefferson, A Meredith
N2749 N2762 Not so Trivial Issues with TrivialL. Crowl, J. Maurer
Open Papers
These papers are not yet adopted as part of C++0x, but are deemed to be areas of active interest that may yet be incorporated before the CD becomes an FCD.
N1528 Syntactic Disambiguation Using the Template KeywordJohn H. Spicer
N2605 Changing some "undefined behavior" into "ill-formed"Tom Plum
N2631 Resolving the difference between C and C++ with regards to object representation of integers James Kanze
N2275 Non-Memory Actions (Library)Nick Maclaren
N2274 Object Aliasing and ThreadsNick Maclaren
N2582 N2763 Unified Function SyntaxLawrence Crowl, Alisdair Meredith
N2693 Requirements on programs and backwards compatibilityJens Maurer
N2733 Appendix C: ISO C++ 2003 CompatibilityBenjamin Kosnik
Background papers for reference
The papers do not contain actual proposals, but rather motivation, rationale and background to support other papers.
N1395 Aspects of Forwarding (was C++ Support For Delegation)Lois Goldthwaite
N1648 Motivation, Objectives and Design DecisionsAttila Fehér
N1680 N1738 N1777 N1876 N1911 N1942 N2010 Memory model for multithreaded C++: IssuesA. Alexandrescu, H. Boehm, K. Henney, B. Hutchings, D. Lea, B. Pugh
N1815 ISO C++ Strategic Plan for MultithreadingLawrence Crowl
N1834 A Pleading for Reasonable Parallel Processing Support in C++ Detlef Vollmann
N2012 Thread Subcommittee minutes from BerlinLawrence Crowl
N2075 N2197 Prism: A Principle-Based Sequential Memory Model for Microsoft Native Code Platforms H Sutter
N2138 N2480 A Less Formal Explanation of the Proposed C++ Concurrency Memory Model Hans-J. Boehm
N2176 Memory Model RationalesHans-J. Boehm
N2338 Concurrency memory model compiler consequences Hans-J. Boehm
N2392 A Memory Model for C++: Sequential Consistency for Race-Free Programs Hans-J. Boehm
N1799 C++ Language Support for Generic ProgrammingJ. Siek, D. Gregor, R. Garcia, J. Willcock, J. Järvi, A. Lumsdaine
N1885 A formalism for C++G. Dos Reis, B. Stroustrup
N1899 Concept proposal comparisonMatt Austern
N2221 An analysis of concept intersectionBjarne Stroustrup, Gabriel Dos Reis
N2399 A Tour of the Concepts WordingDouglas Gregor
N1956 Design Rationale for C++/CLIH Sutter
N1976 Shared dynamic objects : review and issuesBenjamin Kosnik
N2027 A Brief Introduction to Rvalue ReferencesHoward Hinnant, Bjarne Stroustrup, Brokek Kozicki
N2087 A brief introduction to variadic templatesDoug Gregor
N2167 Linux Kernel Reference CountingPaul E. McKenney
N2177 Sequential Consistency for AtomicsHans-J. Boehm
N2272 Optional Sequential ConsistencyNick Maclaren
N2216 Report on language support for Multi-Methods and Open-Methods for C++ P. Pirkelbauer, Y. Solodkyy, B. Stroustrup
N2417 C++0x Timing Options for Kona DiscussionHerb Sutter
N2362 Converting Memory Fences to N2324 FormP. McKenney, L. Crowl
N2466 WG 14: Towards Attributes for CN. Stoughton, J. Benito, T. Plum, A. Bijanki, J. Muller
N2536 POSIX Liaison ReportNick Stoughton
N2745 Example POWER Implementation for C/C++ Memory ModelP. McKenney, R. Silvera
N2746 Rationale for the C++ working paper definition of "memory location"Hans-J. Boehm
Evolution of current proposals
These papers are the inspiration or history behind the active or accepted proposals. They might have been absorded into a larger proposal to ease taking a whole package through review. They are retained here as they capture a large part of the rationale that will produce C++0x.
N1401 Atomic operations with multi-threaded environmentsJan Kristoffersen
N2016 Should volatile Acquire Atomicity and Thread Visibility Semantics? Nick McLaren, Hans Boehm
N2153 N2237 Memory model for weak orderingRaúl Silvera, Michael Wong, Paul McKenney, Bob Blainey
N2195 Proposed Text for Chapter 29, Atomic Operations LibraryPeter Dimov
N2260 C++ Data-Dependency OrderingPaul E. McKenney
N2359 C++ Data-Dependency Ordering: AtomicsPaul E. McKenney
N2360 C++ Data-Dependency Ordering: Memory Model Paul E. McKenney
N2262 Explicit Memory FencesR. Silvera, P. Dimov
N2273 Non-Memory ActionsNick Maclaren
N1445 N1582 N1702 N1717 Explicit class and default definitionsF. Glassborow, L. Goldthwaite
N1602 Class Scope Using Declarations & private MembersFrancis Glassborow
N2123 Adding the prohibited access specifier to C++0xAlisdair Meredith
N1467 N1824 Extending Aggregate InitializationAlisdair Meredith, Daniel F. Gutson
N1493 Braces Initialization OverloadingDaniel F. Gutson
N1584 N1701 Regularizing Initialization SyntaxFrancis Glassborow
N2477 N2532 Uniform initialization design choicesBjarne Stroustrup
N2575 N2640 Initializer Lists — Alternative Mechanism and RationaleJ. Merrill, D. Vandevoorde
N1478 N1527 N1607 N1705 N1978 Auto, decltype and a new function declaration syntaxJ. Järvi, B. Stroustrup, D. Gregor, J. Siek, G. Dos Reis
N1737 A Proposal to Restore Multi-declarator auto DeclarationsWalter E. Brown
N1510 N1522 N1536 N1782 N1886 Concepts - syntax and compositionB. Stroustrup, G. Dos Reis
N1758 N1798 N1848 N1849 Concepts for C++0xJ. Siek, D. Gregor et al.
N2098 N2414 Scoped Concept mapsJ. Siek, J. Widman
N2161 Combining conceptsDoug Gregor, Andrew Lumsdaine
N2520 Proposed Wording for Concepts (Changes from Revision 3 to Revision 4) D. Gregor, B. Stroustrup, J. Siek, J. Widman
N2576 Type-Soundness and Optimization in the Concepts ProposalDouglas Gregor
N1534 N1642 Proposed addition of __func__ predefined identifier from C99 Alex Rosenberg
N1583 Inheriting ConstructorsF. Glassborow
N1682 N1907 N2285 A Multi-threading Library for Standard C++, Revision 2Pete Becker
N1875 C++ ThreadsLawrence Crowl
N2090 ; N2178 Proposed Text for Chapter 30, Thread Support LibraryPeter Dimov
N2094 N2184 Thread Launching for C++0XHoward Hinnant
N2139 Thoughts on a Thread Library for C++Anthony Williams
N2455 Thread CancellationWG14
N1796 N1868 N1961 Proposal for new for-loopThorsten Ottosen
N1958 A proposal to add lambda functions to the C++ standardV Samko
N2510 BSI Position on Lambda FunctionsBSI
N2511 Named Lambdas and Local FunctionsAlisdair Meredith
N2061 N2106 N2229 ; N2107 Propagating exceptions when joining threadsBeman Dawes; Alisdair Meredith, Jens Maurer
N2105 Choosing KeywordsBeman Dawes
N2173 Core Extensions for EvolutionAlisdair Meredith
N2224 General Attributes for C++Alisdair Meredith
N2747 Ambiguity and Insecurity with User-Defined LiteralsLawrence Crowl
Not quite ready for C++0x timetable, but actively pursued
Papers in this category have been in development and reviewed several times over the evolution of C++0x. However, although there is a strong interest the feature has not quite stabilised fast enough to meet the 2009 target deadline. Work will proceed outside the main committee meetings, and will be picked up with a view to an early adoption.
N1833 N1943 N2128 N2129 N2286 N2287 N2310 Transparent Garbage Collection for C++H. Boehm, M. Spertus
N2261 Optimization-robust finalizationH. J. Boehm, M. Spertus
Heading for a separate TR
These topics are deemed too important to wait for another standard after C++0x before being published, but too experimental to be finalised in time for the next Standard. Therefore, these features will be delivered by a technical report at the earliest opportunity.
N1567 N1776 N1839 N1965 N1977 N2732 Decimal Types for C++Robert Klarer, P.J. Plauger
N1736 N1778 N1964 N2006 N2015 N2073 N2074 N2316 Modules in C++Daveed Vandevoorde
Not ready for C++0x, but open to resubmit in future
Papers in this category have been reviewed in EWG but for various reasons they have not been accepted for C++0x. This may have been a lack of time to finalise the issues, a lack of motivation compared to competing papers, or simply the authors being pulled in different directions. This list is retained as a potential working list for EWG to pick up for the next standard revision.
N1384 ; N1600 ; N1615 PME: Properties, methods and eventsJohn Wiegley; Daveed Vandevoorde; Lois Goldthwaite
N1400 N1418 N1428 N1496 Draft Proposal for Dynamic Libraries in C++Pete Becker, Matt Austern
N2117 N2407 N2425 Minimal Dynamic Library SupportLawrence Crowl
N1408 N1691 Explicit NamespacesDavid Abrahams
N1792 N1893 N1912 N2103 A Modest Proposal: Fixing ADLHerb Sutter, Daveed Vandevoorde
N1420 Proposed Addition to C++: Class NamespacesCarl Daniel
N1461 Security and Standard C LibrariesMartyn Lovell
N1462 Safe Exceptions and Compiler Security ChecksBrandon Bray
N1463 N1529 Draft proposal for adding Multimethods to C++Julian Smith
N1466 Expliciting default parametersDaniel Gutson
N1470 ; N1741 Extending / checking Switch statementsDaniel Gutson; Francis Glassborow
N1471 Reflective Metaprogramming in C++Daveed Vandevoorde
N1524 Nested Namespace Definition ProposalJon Jagger
N1585 N1716 N1742 Uniform Calling Syntax (Re-opening public interfaces)Francis Glassborow
N1611 Implicitly-Callable Functions in C++0xWalter E. Brown
N1613 N1669 N1773 N1800 N1866 N1867 N1962 Contract Programming For C++0xL. Crowl, T. Ottosen, D. Abrahams, J. Widman
N1614 N1625 N1726 N1740 Macro scopesThomas Plum, Bjarne Stroustrup
N1664 ; N1703 Toward Improved Optimization Opportunities in C++0xW. Brown,M. Paterno; Francis Glassborow
N1671 N2200 Overloading Operator.() & Operator.*()G. Powell, D. Gregor, J. Jarvi
N1676 ; N2200 Non-member overloaded copy assignment operatorBronek Kozicki; G. Powell, D. Gregor, J. Jarvi
N1695 A Proposal to Make Pointers to Members CallablePeter Dimov
N1696 Language Support for Restricted TemplatesPeter Dimov
N1706 N1891 N2141 Toward Opaque typedefs in C++0XWalter E. Brown; Alisdair Meredith
N1751 ; N1775 Reflection in C++Detlef Vollmann; Walter E. Brown, et al.
N1785 Toward a Proposal for Object Templates in C++0xWalter E. Brown
N1825 Addressing Exception Specifications for Next Generation of C++ Alisdair Meredith
N2281 Digit SeparatorsLawrence Crowl
N2312 N2386 Namespace Regions Michael Spertus
N2332 Argument Deduction for ConstructorsMichael Spertus
N2583 Default Move FunctionsLawrence Crowl
N2584 Default swap FunctionsLawrence Crowl
N2646 Concept Implication and Requirement PropagationPeter Gottschling
N2719 Initializer lists and move semanticsRodrigo Castro Campos
No interest, or superseded by other proposals
These papers have either been superseded by different set of proposals, or were identified as a something we do not want to do. While everyone is free to submit papers they feel strongly about, it is unlikely any of these topics will gain favour for a future standard unless something significantly new is presented with the updated paper.
N1394 Some proposed extensions to C++ languageDavid Miller
N1464 Anonymous array membersDaniel Gutson
N1465 Constant inheritanceDaniel Gutson
N1468 Self methodsDaniel Gutson
N1469 Inline ConstantsDaniel Gutson
N1492 Exclusive InheritanceDaniel Gutson
N1494 Pure implementation method declarationDaniel F. Gutson
N1827 N2108 N2365 An Explicit Override Syntax for C++C. Uzdavinis, A. Meredith, Jens Maurer
N1605 Extending Template Type Parameters I: Namespace and scopeDaniel Gutson
N1612 N1869 How we might remove the remaining shortcomings of std::complex<T> Thorsten Ottosen
N1694 A Proposal to Extend the Function Call OperatorPeter Dimov
N2518 Compiler Support for type_traitsJames Widman
N2713 Allow auto for non-static data membersBill Seymour

原址:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2869.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值