Doc. no. | N4102 |
Date: | 2014-07-01 |
Project: | Programming Language C++ |
Reply to: | Ville Voutilainen <[email protected]> |
Revised 2014-07-01 at 21:07:12 UTC
Reference ISO/IEC IS 14882:2003(E)
Also see:
This document contains only evolution issues which have been closed by the Evolution Working Group (EWG) after being found to be acceptable extensions to the standard. That is, issues which have a status of DR, TC1, WP, C++11, or Resolved. See the Evolution Closed Issues List for issues closed as non-defects. See the Evolution Active Issues List for active issues and more information. The introductory material in that document also applies to this document.
Section: 7.1.6.4 [dcl.spec.auto] Status: WP Submitter: Jason Merrill Opened: 2012-03-27 Last modified: 2014-06-13
View all other issues in [dcl.spec.auto].
View all issues with WP status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3386.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3582.html
Reviewed by EWG in Portland 2012, proceeding to CWG.
Accepted into the Working Draft in Bristol 2013, as N3638.
Wording available:
The paper contains the proposed wording.
Section: 7.6 [dcl.attr] Status: WP Submitter: Alberto Ganesh Barbati Opened: 2012-06-12 Last modified: 2014-06-13
View all issues with WP status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3394.html
Reviewed by EWG in Portland 2012, proceeding to CWG.
Adopted in Chicago 2013
Wording available:
The paper contains the proposed wording.
Section: 12.8 [class.copy] Status: WP Submitter: Ville Voutilainen Opened: 2012-09-21 Last modified: 2014-06-13
View all other issues in [class.copy].
View all issues with WP status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3401.htmlReviewed by EWG in Portland 2012, proceeding to CWG.
Accepted into the Working Draft in Bristol 2013, as N3667.
Wording available:
The related Core issue contains the proposed wording.
Section: 2.14.2 [lex.icon] Status: WP Submitter: Peter Sommerlad Opened: 2012-09-08 Last modified: 2014-06-13
View all issues with WP status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3402.pdf
http://open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3468.pdf
http://open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3472.pdf
Reviewed by EWG in Portland 2012, binary literals to be added into the core language, the rest of the paper is on LWG's plate. The binary literals are proceeding to CWG.
Accepted into the Working Draft in Bristol 2013, as N3642.
N3472 also accepted into the Working Draft in Bristol 2013.
Wording available:
The paper contains the Library wording, Dennett has written the Core wording (N3472) for binary literals.
Section: 18 [language.support] Status: Resolved Submitter: Mike Spertus Opened: 2012-09-22 Last modified: 2014-07-02
View all issues with Resolved status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3403.pdf
http://open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3492.pdf
Not reviewed by EWG yet, to be handled by the Reflection Study Group (SG7).
Section: 3.9 [basic.types] Status: WP Submitter: Jens Maurer Opened: 2012-09-19 Last modified: 2014-06-13
View all other issues in [basic.types].
View all issues with WP status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3412.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3467.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3497.html
Reviewed by EWG in Portland 2012, proceeding to CWG. The library part is N2648 C++ Dynamic Arrays, and that part is proceeding to LWG.
Accepted into the Working Draft in Bristol 2013, as N3639.
Wording available:
The paper contains the proposed wording, as does the Library counterpart.Section: 5.1.2 [expr.prim.lambda] Status: WP Submitter: Faisal Vali Opened: 2012-09-21 Last modified: 2014-06-13
View all other issues in [expr.prim.lambda].
View all issues with WP status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3418.pdf
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3559.pdf
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3560.pdf
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3649.html
Reviewed by EWG in Portland 2012, proceeding with a follow-up paper.
Accepted into the Working Draft in Bristol 2013, as N3649.
Bristol 2013: Do not re-open proposals 2.1 and 2.2 in N3560, they are considered NAD. The proposals 2.3 and 2.4 are covered by N3649.
Section: 5.1.2 [expr.prim.lambda] Status: WP Submitter: Herb Sutter Opened: 2012-09-23 Last modified: 2014-06-13
View all other issues in [expr.prim.lambda].
View all issues with WP status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3424.pdfReviewed by EWG in Portland 2012, proceeding with a follow-up paper. Changes to const captures rejected, capturing of 'this' and members encouraged to continue with a follow-up paper.
Init-captures in C++14 provide the necessary facilities for capturing 'this' and class members, voted into the WP in Bristol 2013.
Section: 3.7.4 [basic.stc.dynamic] Status: WP Submitter: Lawrence Crowl Opened: 2012-09-23 Last modified: 2014-06-13
View all other issues in [basic.stc.dynamic].
View all issues with WP status.
Discussion:
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3663.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3536.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3432.html
Reviewed by EWG in Portland 2012, proceeding to CWG.
Wording available:
The paper contains the proposed wording.
Adopted in the Chicago 2013 meeting as N3778.
Section: 3.7.4 [basic.stc.dynamic] Status: WP Submitter: Lawrence Crowl Opened: 2012-09-23 Last modified: 2014-06-13
View all other issues in [basic.stc.dynamic].
View all issues with WP status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3537.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3433.html
Reviewed by EWG in Portland 2012, proceeding with a follow-up paper.
Adopted in Bristol 2013
Wording available:
The paper contains the proposed wording.
Section: 5.19 [expr.const] Status: WP Submitter: Richard Smith Opened: 2012-09-21 Last modified: 2014-06-13
View all other issues in [expr.const].
View all issues with WP status.
Discussion:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3444.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3597.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3598.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3652.html
Reviewed by EWG in Portland 2012, proceeding with a follow-up paper.
Accepted into the Working Draft in Bristol 2013, as N3652.
Section: 2.10 [lex.ppnumber] Status: WP Submitter: Daveed Vandevoorde Opened: 2012-09-21 Last modified: 2014-06-13
View all issues with WP status.
Discussion:
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3499.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3448.pdf
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3661.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3781.pdf
Reviewed by EWG in Portland 2012, proceeding with a follow-up paper.
Bristol 2013:
Straw poll:
Double radix point as the suffix disambiguator:
SF: 8 F: 5 N: 0 A: 0 SA: 0
Convey to Core, target C++14:
SF: 10 F: 3 N: 0 A: 0 SA: 0
The paper was not adopted in Bristol, because its motion didn't pass.
Adopted in Chicago 2013, as N3781.
Wording available:
The paper contains the proposed wording.
Section: 23.3.6 [vector] Status: Resolved Submitter: Nevin Liber Opened: 2012-11-27 Last modified: 2014-06-30
View all issues with Resolved status.
Discussion:
I'd like it to be possible to use the small object optimization (embedding up to a fixed number of objects inside the allocator itself) inside a vector.
Bristol 2013: Designated for LEWG.
Filed as LEWG Bug 38, closing as Resolved on the EWG side.
Section: 21.4.2 [string.cons] Status: Resolved Submitter: Nevin Liber Opened: 2012-12-19 Last modified: 2014-06-30
View all issues with Resolved status.
Discussion:
In n3485 21.4.2p6 (basic_string constructors and assignment operators), we have:
basic_string(const charT* s, size_type n, const Allocator& a = Allocator()); Requires: s shall not be a null pointer and n < npos.That requires clause is too restrictive; s can be a null pointer when n==0. A (simplified) use case I have seen:
std::string StringFromVector(std::vector<char> const& vc) { return std::string(vc.data(), vc.size()); }Since a conforming implementation can return a null pointer for vc.data() when vc.size() == 0. I don't see any reason to disallow this construct, especially since it takes a Standards expert to see that this is possibly illegal, but not std::string(vc.data(), vc.data() + vc.size()). This is likely to go onto the LEWG's plate.
Bristol 2013: Defer to LEWG.
Filed as LEWG Bug 39, closing as Resolved on the EWG side.
Wording available:
Requires: n < npos and either s shall not be a null pointer or n == 0.
Section: 20.8.9 [bind] Status: Resolved Submitter: Chris Jefferson Opened: 2013-01-25 Last modified: 2014-06-30
View all issues with Resolved status.
Discussion:
As more variadic functions work their way into my C++ code, I'm getting increasingly annoyed that there isn't a variadic bind. There is a tiny bit of annoyance on exactly what to use. There seems to me to be 2 sensible choices (other people may have others)
1) _args : Use all otherwise unnamed arguments. 2) _3onwards : All arguments from the 3rd onwards.I haven't personally found a need for multiple ranges of variadic arguments, or more complicated chopping (such as getting the last few arguments), and I'd want to hopefully keep this simple if possible!
Bristol 2013: Defer to LEWG.
Filed as LEWG Bug 40, closing as Resolved on the EWG side.
Section: 20.9.4.3 [meta.unary.prop] Status: Resolved Submitter: Nevin Liber Opened: 2013-02-05 Last modified: 2014-06-30
View all other issues in [meta.unary.prop].
View all issues with Resolved status.
Discussion:
I'd like to have an is_range<T, R = void> type trait, which derives from true_type if and only if T can be used in range-based for, and *__begin is convertible to R (where R == void means don't bother checking this condition).
Bristol 2013: Submitter is encouraged to proceed and present to LWG. Apparently LEWG doesn't handle these.
Filed as LEWG Bug 41, closing as Resolved on the EWG side.
Section: 20.9.4.3 [meta.unary.prop] Status: WP Submitter: Nevin Liber Opened: 2013-02-05 Last modified: 2014-06-30
View all other issues in [meta.unary.prop].
View all issues with WP status.
Discussion:
I'd like to have an is_final<T> type trait, which is true if and only if T is a final type.
Bristol 2013: Submitter is encouraged to proceed and present to LWG. Apparently LEWG doesn't handle these.
Voted into C++14 in Issaquah 2014 as the resolution of LWG issue 2112.
Section: 8.5.1 [dcl.init.aggr] Status: WP Submitter: Ville Voutilainen Opened: 2013-03-15 Last modified: 2014-06-13
View all other issues in [dcl.init.aggr].
View all issues with WP status.
Discussion:
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3605.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3653.html
Accepted into the Working Draft in Bristol 2013, as N3653.
Section: 5.1.2 [expr.prim.lambda] Status: WP Submitter: Ville Voutilainen Opened: 2013-03-15 Last modified: 2014-06-13
View all other issues in [expr.prim.lambda].
View all issues with WP status.
Discussion:
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3610.html
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3648.html
Accepted into the Working Draft in Bristol 2013, as N3648.
Section: 14.1 [temp.param] Status: WP Submitter: Gabriel Dos Reis Opened: 2013-03-18 Last modified: 2014-06-13
View other active issues in [temp.param].
View all other issues in [temp.param].
View all issues with WP status.
Discussion:
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3552.pdf
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3615.pdf
http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3651.pdf
Accepted into the Working Draft in Bristol 2013, as N3651.
Section: 20.4.1 [tuple.general] Status: Resolved Submitter: Nevin Liber Opened: 2013-03-19 Last modified: 2014-06-30
View all issues with Resolved status.
Discussion:
In 20.4.1p2, the unspecialized std::tuple_size is undefined. It would be a lot more useful if it were defined as an empty struct; that way, it can be used with enable_if for determining whether or not it is valid to use tuple_size, tuple_element and get on the corresponding data structure.
This should go to LEWG.
Filed as LEWG Bug 42, closing as Resolved on the EWG side.
Section: 5 [expr] Status: Resolved Submitter: D. Gutson, A. Bustamante Opened: 2014-05-08 Last modified: 2014-06-30
View all other issues in [expr].
View all issues with Resolved status.
Discussion:
http://open-std.org/JTC1/SC22/WG21/docs/papers/2014/n3990.pdf
Wording available:
The paper contains the proposed wording.
Discussed in Rapperswil 2014.
EWG was unanimously against having an operator for this, and recommended taking the idea up with the Numerics SG and then with LWG. Closing as resolved, Vandevoorde sent a heads-up to the Numerics reflector.
Section: 1 [intro] Status: Resolved Submitter: Ville Voutilainen Opened: 2014-07-01 Last modified: 2014-07-02
View other active issues in [intro].
View all other issues in [intro].
View all issues with Resolved status.
Discussion:
13 extern "C" for Parameters of Function Templates -> request Core to close as NAD, Daveed says aliases with linkage are the solution. 1463 will be opened as an EWG issue to solve this.
92 Should exception-specifications be part of the type system? -> Instruct Core to close 92 as NAD. Maurer points out that he's going to be dealing with the area with TM. The rationale for closing is that EWG doesn't agree that being able to overload on noexcept is worth the trouble, nor does EWG think being able to have pointers-to-functions being different parameter types if they have different noexcept-specifications.
230 Calls to pure virtual functions -> Instruct Core to close 230 as NAD. Pure virtual functions can be called by non-virtual calls only, and it is by design that virtual calls should never resolve to the definition of a pure virtual function. The behaviour is undefined because implementations aren't required to prevent ending up in the pure virtual function definition. That is also by design.
623 Use of pointers to deallocated storage -> Instruct Core to close 623 as WP. The behavior is implementation-defined rather than undefined in the current working draft, and thus the requirements are no longer draconian. 312, which was resolved as DRWP points to 623, so also close 623 as DRWP.
755 Generalized lambda-captures -> Instruct Core to close 755 as WP. Generalized lambda-captures are in C++14.
947 Deducing type template arguments from default function arguments -> Open an EWG issue, 97, for 947, immediately close as NAD, explaining that the group doesn't think it's generally implementable. Leave the door open (but not the issue :)) for a restricted implementation.
1461 Narrowing conversions to bit-fields -> Instruct Core to close 1461 as NAD. It would break existing code and EWG doesn't consider the breakage to be worth it. Vandevoorde pointed out valid existing code that initializes bitfields (even with one bit) with -1.
1474 User-defined literals and <inttypes.h> format macros -> Instruct Core to close 1474 as NAD. The fix would be to remove UDLs.
1519 Conflicting default and variadic constructors -> Open an EWG issue for 1519, 107. Mark as NAD, there is a work-around and Concepts Lite will make the work-around much easier.