<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Sep 28, 2014 at 5:17 PM, Ed Smith-Rowland <span dir="ltr">&lt;<a href="mailto:3dw4rd@verizon.net" target="_blank">3dw4rd@verizon.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><div><div class="h5">
    <div>On 08/14/2014 07:37 PM, Nelson, Clark
      wrote:<br>
    </div>
    </div></div><blockquote type="cite"><div><div class="h5">
      <pre>I have made a few minor revisions since N4030.

The redlining in the document is relative to the published SD-6; I think
that&#39;s the way we&#39;ll want to publish it. But here is what I&#39;ve changed
recently:

In response to Ed Smith-Rowland&#39;s question about &lt;optional&gt; vs.
&lt;experimental/optional&gt; I updated the __has_include example. Of course it&#39;s
just an example, but I think it&#39;s more helpful now than it was.

In response to Walter&#39;s question about the &quot;policy&quot; for the C++14 table, I
minimally tweaked the text. :-)

In response to Richard&#39;s question/complaint, I deleted &quot;has&quot; from the macro
names for new features added by LWG issues.

There are sentences in the rationale section about features removed from
C++14 to a TS; I have changed them from editorial notes to plain old text.
(I don&#39;t know what&#39;s going to happen with the array extension TS, but it is
still an official project with an official number; hopefully something will
come of it.)


This still needs work in three areas:

1. We need introductory text and rationale for __has_cpp_attribute.
(Richard?)

2. We need to approve what we want to do about the LWG issues that Alisdair
brought up.

3. We need to make final determinations about shared_mutex.

--
Clark Nelson            Vice chair, PL22.16 (ANSI C++ standard committee)
Intel Corporation       Chair, SG10 (C++ SG for feature-testing)
<a href="mailto:clark.nelson@intel.com" target="_blank">clark.nelson@intel.com</a>  Chair, CPLEX (C SG for parallel language extensions)
</pre>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><span class=""><pre>_______________________________________________
Features mailing list
<a href="mailto:Features@isocpp.open-std.org" target="_blank">Features@isocpp.open-std.org</a>
<a href="http://www.open-std.org/mailman/listinfo/features" target="_blank">http://www.open-std.org/mailman/listinfo/features</a>
</pre>
    </span></blockquote>
    I apologize for sending this so late but I thought I had lost some
    notes regarding C++98 and C++11.<br>
    I collected some thoughts on &quot;finishing&quot; these areas if that is
    desired.<br>
    <br>
    Here are some macros to finish-out C++11:<br>
    <br>
    C++11<br>
    -----<br>
    N2439    __cpp_reference_qualifiers    200710    This has library
    usage<br></div></blockquote><div><br></div><div>ref_qualifiers, to match the name of the grammar term?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    N2756    __cpp_nsdmi    200809    Hate to spell this out :-(<br></div></blockquote><div><br></div><div>NSDMI is GCC terminology; the standard calls these &quot;brace-or-equal-initializers for non-static data members&quot;. My preferred terminology (with Project Editor hat on) is &quot;default initializers&quot;. But...</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
        __cpp_aggregate_default_initializers        Or this, borrowed
    from CMake?<br></div></blockquote><div><br></div><div>... we already have __cpp_aggregate_nsdmi, which is ... presumably ... what CMake means by this?</div><div><br></div><div>If we had a time machine, I&#39;d like __cpp_default_initializers == 200809L here and __cpp_default_initializers == 201304L for N3653. As things stand, the most consistent thing is probably &#39;__cpp_nsdmi&#39;.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    N1986    __cpp_delegating_constructors    200604    Users can
    migrate from initializer functions<br>
    N2540    __cpp_inheriting_constructors    200802    Ditto<br>
    N2930    __cpp_range_based_for_loops    200907    <br></div></blockquote><div><br></div><div>Seems a bit wordy. __cpp_range_for ?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    N2672    __cpp_initializer_lists    200806    <br>
    <br>
    Some popular C++ compilers still don&#39;t support all these.<br>
    It doeas add a few more macros but it finishes C++11.<br>
    Other compilers may emerge that need to &quot;work their way up&quot; through
    these features.<br>
    I could go either way on this - I know some don&#39;t want to clutter up
    compilers with lots of macros.<br>
    <br>
    <br>
    C++98<br>
    -----<br>
        __cpp_exceptions    199711L<br>
        <br>
        __cpp_run_time_type_id    199711L<br></div></blockquote><div><br></div><div>I&#39;d prefer __cpp_rtti</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    Rationale for __cpp_exceptions and __cpp_run_time_type_id:<br>
    Several compilers exist that allow the user to turn these features
    off with a macro or a compiler switch.<br>
    Providing these macros enhance portability of such code that uses
    macros to change code depending on availability of these features.<br>
    <br>
    I just used the date standard when these were added to C++98 rather
    than try to dig up old papers.<br>
    <br>
  </div>

<br>_______________________________________________<br>
Features mailing list<br>
<a href="mailto:Features@isocpp.open-std.org">Features@isocpp.open-std.org</a><br>
<a href="http://www.open-std.org/mailman/listinfo/features" target="_blank">http://www.open-std.org/mailman/listinfo/features</a><br>
<br></blockquote></div><br></div></div>