On Mon, Nov 25, 2019 at 3:43 PM Ville Voutilainen < [email protected]> wrote:
> On Tue, 26 Nov 2019 at 00:59, Casey Carter <[email protected]> wrote: > > > > Shipping multiple feature-test macros for the same feature is trivially > simple for implementors. Requiring users to check multiple feature-test > macros to detect a single feature - the detection needs to work both in old > and new implementations - seems hostile. > > Fully agreed, but I don't see anyone suggesting such hostilities. You > can continue shipping the old spellings, > and we all can, and we can still do the policy-fixes in the standard, > and no user will be hurt the slightest. > That's what I mean by not seeing a convincing argument to deviate from > the policy; renaming > __cpp_lib_array_constexpr doesn't in any way prevent you from > continuing to ship that macro spelling. > Say an implementation has shipped __cpp_lib_meow, and WG21 chooses to rename __cpp_lib_meow to __cpp_lib_woof. The implementation continues to ship __cpp_lib_meow, and adds __cpp_lib_woof. This takes five minutes of work, the implementor is not bothered. Users want to use this feature everywhere it's available. Since there are implementations in the wild that only define __cpp_lib_meow, and the standard only requires implementations to define __cpp_lib_woof, such users must check both __cpp_lib_meow and __cpp_lib_woof. The harm isn't to the implementations, it's to the users that want portability and the already-shipped third-party code that uses the old name.
-- SG10 mailing list [email protected] https://lists.isocpp.org/mailman/listinfo.cgi/sg10
