On 01/05/2015 04:29 PM, Nelson, Clark wrote:
Here's an updated document.
Summarizing recent discussion:
With respect to N4267 (u8 character literals), we have now had three macro
name proposals:
__cpp_utf8_char_literals
__cpp_unicode_literals
__cpp_unicode_characters
The latter two, of course, update the value of a macro from C++11. I'm
inclined to guess that this is going to be considered a small enough tweak
that introducing a new macro name (such as the first) would not be
justified.
People have talked about how unfortunate it is that the C++11
recommendations use two different macro names for such closely related
features. So far, I have not interpreted this is an actual proposal to
change SD-6 -- it seems like noodling up to this point. But if someone
wants to produce a concrete proposal along these lines, we can certainly
consider it.
But I also want to point out that there are nine other C++17 papers for
which no proposal has yet been made.
For N4190 (removing old stuff) and N4258 (cleaning up noexcept), if no one
from SG10 makes a proposal pretty soon, I'm going to contact the authors to
see what kind of ideas they have.
--
Clark Nelson Chair, PL22.16 (ANSI C++ standard committee)
Intel Corporation Chair, SG10 (C++ SG for feature-testing)
[email protected] Chair, CPLEX (C SG for parallel language extensions)
_______________________________________________
Features mailing list
[email protected]
http://www.open-std.org/mailman/listinfo/features
Finally looking at
N4258: Cleaning-up noexcept in the Library
The only thing I can think of that would be helpful is
__cpp_lib_allocator_is_always_equal
I think the actual application of noexcept to all the various containers
don't lend themselves to a macro in a way that would help migration. It
seems the customization of is_always_equal is used inside noexcept to
set the exception policy. If __cpp_lib_allocator_is_always_equal is
defined you know you have to provide and set non-default is_always_equal
for user-defined stateful allocators. Similarly, user-defined
containers could use the macro to migrate noexcept specification for
their container methods.
In my last email I was thinking out loud and maybe it looked chaotic to
me this morning.
I would like to summarize my favored approaches:
N4267 (u8 character literals)
__cpp_unicode_characters 201411
N4190 (removing old stuff)
__cpp_lib_remove_auto_ptr 201411
__cpp_lib_remove_random_shuffle 201411
__cpp_lib_remove_deprecated_functionals 201411
__cpp_lib_remove_deprecated_bind 201411
These would get date bumps if/when std::not_fun etc. or std::bind is
removed.
I am slightly annoyed that the fist two don't have _deprecated_ but they
look nice to me as they are.
N4279 - Improved insertion interface for unique-key maps
__cpp_lib_map_insertion 201411
__cpp_lib_unordered_map_insertion 201411
N4051Allow typename in a template template parameter
__cpp_typename_in_template_template_parm 201411
This may be too little to mess with.
N4268 - Allow constant evaluation for all non-type template arguments
__cpp_const_eval_of_non_type_template_args
N4230 - Nested namespace definition
__cpp_nested_namespace_definitions 201411
I like this better than __cpp_nested_namespaces that I had before.
N3922 - New Rules for auto deduction from braced-init-list
__cpp_auto_deduction 200604 for C++11
__cpp_auto_deduction 201411 for C++17
This could be an alternate spelling of|__cpp_return_type_deduction|:
__cpp_auto_deduction 201304 for C++14
Ed
_______________________________________________
Features mailing list
[email protected]
http://www.open-std.org/mailman/listinfo/features