P0739R0 applied to C++17?

178 views
Skip to first unread message

Akira Takahashi

unread,
Aug 8, 2017, 10:28:59 PM8/8/17
to ISO C++ Standard - Discussion
Hi, I have a question. Has follow change been applied to C++17?

"P0739R0 Some improvements to class template argument deduction integration into the standard library"

If I understand correctly, the change applied to C++20. I read the editor's report:

N4688 Editors' Report -- Programming Languages -- C++

However, cppreference says:
> The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

If the change applied to C++17, where can I get issue list of "applied retroactively to previously published C++ standards"?

As additional informations:

1. In GitHub cplusplus/draft repository, the change not applied to c++17 branch.
2. In libc++ C++1z status, the change applied to C++17
3. In libstdc++, the change applied to C++17
4. In reddit 2017 Toronto meeting report says "We didn’t have anything to work on for C++17 at this meeting"

Thanks,
Akira

==
Akira Takahashi

Nicol Bolas

unread,
Aug 8, 2017, 11:55:22 PM8/8/17
to ISO C++ Standard - Discussion
On Tuesday, August 8, 2017 at 10:28:59 PM UTC-4, Akira Takahashi wrote:
Hi, I have a question. Has follow change been applied to C++17?

"P0739R0 Some improvements to class template argument deduction integration into the standard library"

If I understand correctly, the change applied to C++20. I read the editor's report:

N4688 Editors' Report -- Programming Languages -- C++

However, cppreference says:
> The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

If the change applied to C++17, where can I get issue list of "applied retroactively to previously published C++ standards"?

As I understand it, defect resolutions are essentially always "applied retroactively to previously published C++ standards". So you could just look at core/library issues that are resolved in such ways.

Bo Persson

unread,
Aug 9, 2017, 7:19:41 AM8/9/17
to std-dis...@isocpp.org
On 2017-08-09 04:28, Akira Takahashi wrote:
> Hi, I have a question. Has follow change been applied to C++17?
>
> "P0739R0 Some improvements to class template argument deduction
> integration into the standard library"
> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0739r0.html
>
> If I understand correctly, the change applied to C++20. I read the
> editor's report:
>
> N4688 Editors' Report -- Programming Languages -- C++
> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4688.html
>
> However, cppreference says:
> http://en.cppreference.com/w/cpp/thread/scoped_lock/scoped_lock
> > The following behavior-changing defect reports were applied
> retroactively to previously published C++ standards.
>
> If the change applied to C++17, where can I get issue list of "applied
> retroactively to previously published C++ standards"?
>
> As additional informations:
>
> 1. In GitHub cplusplus/draft repository, the change not applied to c++17
> branch.

The proposed C++17 standard is still out on a formal vote by the ISO
member countries. The committee cannot really change the document while
it is being voted on.

>
> https://github.com/cplusplus/draft/commit/1b0b6919161fd092d6601d482de23d96e01468f8
> 2. In libc++ C++1z status, the change applied to C++17
> https://libcxx.llvm.org/cxx1z_status.html
> 3. In libstdc++, the change applied to C++17
> https://patchwork.ozlabs.org/patch/788920/
> 4. In reddit 2017 Toronto meeting report says "We didn’t have anything
> to work on for C++17 at this meeting"
> https://www.reddit.com/r/cpp/comments/6ngkgc/2017_toronto_iso_c_committee_discussion_thread/
>

Apparently the compiler teams consider this a bug in the standard and
not a feature request. Bugs can be patched.

In earlier revisions of the standard we have often seen a "fixed draft"
edition just after the standard was approved. This time it seems like
the tempo is higher and the committee is eager to start the work on the
next standard as soon as possible - which is right now.


Bo Persson


T. C.

unread,
Aug 9, 2017, 4:46:50 PM8/9/17
to ISO C++ Standard - Discussion
The model used by cppreference is like that of implementers: we include in "C++xy" patches to defects in the C++xy standard as published. It is not useful for us to, say, claim that vector<int> v; is ill-formed before C++17, because the <int> would be parsed as a header-name preprocessing token according to the published standards prior to the resolution of CWG 2000.

Since C++11 CWG has generally used a special designation for defect reports in its issue lists, but it doesn't say how far back the DRs reach. LWG doesn't use a special designation at all :( In such cases we examine the behavior of implementations to see if the resolution should be treated as a defect report and if so for which standard revisions.

For P0739R0 in particular, the minutes reflect that it was specifically accepted as a defect report by the committee, and all known implementations of that paper apply it to their C++17 mode, so the choice is easy.

Akira Takahashi

unread,
Aug 9, 2017, 10:32:33 PM8/9/17
to std-dis...@isocpp.org
2017-08-10 5:46 GMT+09:00 T. C. <rs2...@gmail.com>:

For P0739R0 in particular, the minutes reflect that it was specifically accepted as a defect report by the committee, and all known implementations of that paper apply it to their C++17 mode, so the choice is easy.

Hi, 
Nicol, Bo, T. C., Thanks a lot.

I understand DR policy of standard/implementation.

Thanks,
Akira 
Reply all
Reply to author
Forward
0 new messages