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.
There are no library issue here, unless highlighted by the Registration Document submitted following the Portland meeting. Otherwise this list focuses entirely on changes affecting clauses 1 -> 16.
Note that while the deadline for new proposals for C++09 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 a new topic since the last version of this list.
Issues 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) | Title | Authors |
Integrated into working paper | ||
These propsals are already incorporated into the latest working paper, n2009, or the project editor has been directed to include them in the next draught. | ||
N1377 N1385 N1690 N1770 N1855 N1952 | A Proposal to Add an Rvalue Reference to the C++ Language | H. Hinnant, P. Dimov, D. Abrahams, J. Adamczyk, A. Hommel |
N1381 N1604 N1617 N1720 | static_assert | R. Klarer, J. Maddock, B. Dawes, H. Hinnant |
N1448 N1960 N1987 | Extern template | Matt Marcus, Garbriel Dos Reis, John Spicer |
N1520 N1616 N1722 N1791 | Extended friend Declarations | William M. Miller |
N1545 N1566 N1653 | Synchronizing the C++ preprocessor with C99 | Clark Nelson, Paul Mensonides |
N1564 N1627 | "Conditionally-Supported Behavior" | William M. Miller |
N1727 | Changing Undefined Behavior into Diagnosable Errors | William 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 Constructors | H. Sutter, F. Glassborow |
N1610 | Clarification of Initialization of Class Objects by rvalues | D. Abrahams, G. Powell |
N1649 N1699 N1757 | Right Angle Brackets | Daveed Vandevoorde |
N1721 N1794 N1894 N1984 | Deducing the type of variable from its initializer expression | J. Jaarvi, B. Stroustrup, G. Dos Reis |
N1737 | A Proposal to Restore Multi-declarator auto Declarations | Walter E. Brown |
Proposed wording under review in Core | ||
These papers are undergoing final scrutiny in Core Working group, and have all been reviewed at least once. Full wording is available, and has been reviewed at least once by the CWG. However, some draughting issues remain to be resolved before moving into the Working Paper. | ||
N1406 N1449 N1451 N1489 | Template aliases for C++ | B. Stroustrup, G. Dos Reis, Mat Marcus, Walter E. Brown, Herb Sutter |
N1478 N1527 N1607 N1705 N1978 | Decltype (and auto) | J. Järvi, B. Stroustrup, D. Gregor, J. Siek, G. Dos Reis |
N1521 N1972 N1980 | Generalized Constant Expressions | Gabriel Dos Reis |
N1628 N1823 N1955 N2018 | New Character Types in C++ | Lawrence Crowl |
N1944 N2052 | Sequencing and the concurrency memory model | Clark Nelson, Hans Boehm |
Blessed by evolution - wording available for initial review by Core | ||
The design of these features is deemed complete and accepted by EWG, and there is a paper with complete wording for Core to review. However, CWG have not yet devoted any committee time to this issue. Typically papers in this state have been accepted by EWG at the previous meeting, or the version with proposed wording was not avaiable by the pre-meeting mailing. | ||
N1488 N1601 | A name for the null pointer: nullptr | H. Sutter, B. Stroustrup |
N1513 N1579 N1719 | Strongly Typed Enums | H. Sutter, D. Miller |
N1534 N1642; N1970 | Proposed addition of __func__ predefined identifier from C99 | Alex Rosenberg; Alisdair Meredith |
N1546 N1877 N1971 | Adding Alignment Support to the C++ Programming Language | Attila (Farkas) Fehér |
N1583; N1898 N2119 | Inheriting Constructors | F. Glassborow; M. Michaud, M. Wong, A. Meredith, J. Maurer |
N1592 | Explicit Conversion Operators | Lois Goldthwaite |
Blessed by Evolution - Wording required for Core review | ||
The design of these features is deemed complete and accepted by EWG, but there is not yet a paper with complete wording for Core to review. Complete wording will include specific directions for the project editor to apply directly to the Working Paper. | ||
N1483 N1603 N1704 N2080 | Variadic Templates | D. Gregor, J. Järvi, G. Powell |
N1493 N1509 N1890 N1919 N2100 | Initializer lists | Bjarne Stroustrup, G. Dos Reis, Daniel F. Gutson |
N1528 | Syntactic Disambiguation Using the Template Keyword | John H. Spicer |
Active topics in Evolution | ||
These topics are still actively being developed, and there is a clear intention to incorporate each one in the next standard. | ||
N1400 N1418 N1428 N1496 | Draft Proposal for Dynamic Libraries in C++ | Pete Becker, Matt Austern |
N2117 | Minimal Dynamic Library Support | Lawrence Crowl |
N1401; N2016 N2047 | Atomic operations with multi-threaded environments | Jan Kristoffersen; Nick McLaren, Hans Boehm |
N1874 N1966 | Thread-Local Storage | Lawrence Crowl |
N2090; N2094 | A minimal threading API for C++0x | Peter Dimov; Howard Hinnant |
N2061 N2101; N2096; N2107 | Propagating exceptions when joining threads | Beman Dawes; Peter Dimov; Alisdair Meredith, Jens Maurer |
N1408 N1691 | Explicit Namespaces | David Abrahams |
N1792 N1893 N1912 | A Modest Proposal: Fixing ADL | Herb Sutter, Daveed Vandevoorde |
N1494; N1827 N2018 | An Explicit Override Syntax for C++ | Daniel F. Gutson; C. Uzdavinis, A. Meredith, Jens Maurer |
N1511 N1892 | Extensible Literals | I. McIntosh, M. Wong, R. Mak, Bjarne Stroustrup |
N1796 N1868 N1961; N2049 | Proposal for new for-loop | Thorsten Ottosen; Doug Gregor |
N1833 N1943 | Transparent Garbage Collection for C++ | H. Boehm, M. Spertus |
N1958; N1968 | Lambda expressions and closures for C++ | V Samko; J Willcock, J Järvi, D Gregor, A Lumsdaine |
N2042 N2081 | Concepts (unified proposal) | Doug Gregor, Bjarne Stroustrup |
N2098 | Scoped Concept maps | Jeremy Siek |
N2053 | Raw String Literals | Beman Dawes |
N2062 N2102 | PODs unstrung | Beman Dawes |
N2105 | Choosing Keywords | Beman Dawes |
Stalled - no progress for at least one meeting | ||
These topics have all been considered by Evolution at some point, and have not
yet actively rejected. However, there has been no EWG committee time spent on
them for at least one meeting, and unless an extremely strong case is presented
at the next meeting, they will all automatically drop out of consideration for
C++09 at the next meeting. A strong case should at the very least include proposed wording that might be applied directly to the Working Paper, and ideally a reference implementation. It is also recommended to contact the EWG chair before doing further work, to be sure that the EWG has resources to review/approve the proposal at the next meeting. | ||
N1427 N1945 | Making Local Templates more Useful | Anthony Williams |
N1524 | Nested Namespace Definition Proposal | Jon Jagger |
N1526 | Proposal to add namespace references to C++ | Benjamin Kosnik |
N1611 | Implicitly-Callable Functions in C++0x | Walter E. Brown |
N1614 N1625 N1726 N1740 | Macro scopes | Thomas Plum, Bjarne Stroustrup |
N1664; N1703 | Toward Improved Optimization Opportunities in C++0x | W. Brown,M. Paterno; Francis Glassborow |
N1671 | Overloading Operator.() & Operator.*() | G. Powell, D. Gregor, J. Jarvi |
N1676 | Non-member overloaded copy assignment operator | Bronek Kozicki |
N1706 N1891 | Toward Opaque typedefs in C++0X | Walter E. Brown |
N1784 N1821 | Extending Move Semantics To *this (Revision 2) | D. Vandevoorde, B. Kozicki |
N1785 | Toward a Proposal for Object Templates in C++0x | Walter E. Brown |
Heading for a separate TR | ||
These topics are deemed too important to wait for another standard after C++09 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 | Decimal Types for C++ | Robert Klarer, P.J. Plauger |
N1736 N1778 N1964 N2006 N2015 N2073 N2074 | Modules in C++ | Daveed Vandevoorde |
Not ready for C++09, but encourage work to continue | ||
Papers in this category have been reviewed in EWG, and seen to solve real problems. While it is hoped that work will continue, they are not ready to be finalised in time for C++09. It is anticipated that this category will grow as time pressure restricts the feature list for C++09. | ||
N1471 | Reflective Metaprogramming in C++ | Daveed Vandevoorde |
N1751; N1775 | Reflection in C++ | Detlef Vollmann; Walter E. Brown, et al. |
No active interest today, but open to resubmit in future | ||
These papers were presented, but failed to spark sufficient interest. There is no reason these topics should not be resubmitted in the future, but there is no intention to revisit these topics either. Any future submission should include a strong motivation and possible futher use cases that were not considered first time around. | ||
N1384; N1600; N1615 | PME: Properties, methods and events | John Wiegley; Daveed Vandevoorde; Lois Goldthwaite |
N1440 | Proposed Addition to C++: Class Namespaces | Carl Daniel |
N1445 N1582 N1702 N1717 | Explicit class and default definitions | F. Glassborow, L. Goldthwaite |
N1461 | Security and Standard C Libraries | Martyn Lovell |
N1462 | Safe Exceptions and Compiler Security Checks | Brandon Bray |
N1463 N1529 | Draft proposal for adding Multimethods to C++ | Julian Smith |
N1466 | Expliciting default parameters | Daniel Gutson |
N1470; N1741 | Extending / checking Switch statements | Daniel Gutson; Francis Glassborow |
N1585 N1716 N1742 | Uniform Calling Syntax (Re-opening public interfaces) | Francis Glassborow |
N1602 | Class Scope Using Declarations & private Members | Francis Glassborow |
N1613 N1669 N1773 N1800 N1866 N1867 N1962 | Contract Programming For C++0x | L. Crowl, T. Ottosen, D. Abrahams, J. Widman |
N1694 | A Proposal to Extend the Function Call Operator | Peter Dimov |
N1695 | A Proposal to Make Pointers to Members Callable | Peter Dimov |
N1696 | Language Support for Restricted Templates | Peter Dimov |
N1825 | Addressing Exception Specifications for Next Generation of C++ | Alisdair Meredith |
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++ language | David Miller |
N1464 | Anonymous array members | Daniel Gutson |
N1465 | Constant inheritance | Daniel Gutson |
N1467 N1824 | Extending Aggregate Initialization | Alisdair Meredith, Daniel F. Gutson |
N1584 N1701 | Regularizing Initialization Syntax | Francis Glassborow |
N1468 | Self methods | Daniel Gutson |
N1469 | Inline Constants | Daniel Gutson |
N1492 | Exclusive Inheritance | Daniel Gutson |
N1510 N1522 N1536 N1782 N1886 | Concepts - syntax and composition | B. Stroustrup, G. Dos Reis |
N1758 N1798 N1848 N1849 | Concepts for C++0x | J. Siek, D. Gregor et al. |
N1605 | Extending Template Type Parameters I: Namespace and scope | Daniel Gutson |
N1612 | How we might remove the remaining shortcomings of std::complex<T> | Thorsten Ottosen |
N1869 | Wording for imaginary numbers | Thorsten Ottosen |
N1875 | C++ Threads | Lawrence Crowl |
N1959 | Member Initializers | M Spertus |
Background papers for reference | ||
The papers do not contain actual proposals, but rather motivation and background to support other papers. | ||
N1395 | Aspects of Forwarding (was C++ Support For Delegation) | Lois Goldthwaite |
N1648 | Motivation, Objectives and Design Decisions | Attila Fehér |
N1680 N1738 N1777 N1876 N1911 N1942 N2010 | Memory model for multithreaded C++: Issues | A. Alexandrescu, H. Boehm, K. Henney, B. Hutchings, D. Lea, B. Pugh |
N1815 | ISO C++ Strategic Plan for Multithreading | Lawrence Crowl |
N1834 | A Pleading for Reasonable Parallel Processing Support in C++ | Detlef Vollmann |
N2012 | Thread Subcommittee minutes from Berlin | Lawrence Crowl |
N2075 | Prism: A Principle-Based Sequential Memory Model for Microsoft Native Code Platforms | H Sutter |
N1799 | C++ Language Support for Generic Programming | J. 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 comparison | Matt Austern |
N1956 | Design Rationale for C++/CLI | H Sutter |
N1976 | Shared dynamic objects : review and issues | Benjamin Kosnik |
N2027 | A Brief Introduction to Rvalue References | Howard Hinnant, Bjarne Stroustrup, Brokek Kozicki |
N2087 | A brief introduction to variadic templates | Doug Gregor |