Quuxplusone added a comment.

>> If we must have an opt-in/out mechanism (which I don't believe we do)
> 
> Yes, we do. Opt-out is pre-existing, and removing it would be an 
> [unacceptable] regression.

Ah, I see now that you weren't the originator of 
`_LIBCPP_DISABLE_NODISCARD_AFTER_CXX17`; that existed on the left-hand side of 
this diff already. Okay, I don't object to keeping it around for historical 
interest.

> Opt-in is an enhancement. Of course, it would be nice to always default it to 
> on, but as it was disscussed with @mclow.lists, this is simply not going to 
> happen. This is the best we'll get.

Is @mclow.lists on record anywhere as saying that, that you could link to? I 
ask because I haven't seen him commenting on these patches. At the moment, it 
seems like you're alone in both pushing these patches and simultaneously 
arguing that any effort is futile. :)

>>   #ifdef _LIBCPP_NODISCARD
>>      // the user has given us their preferred spelling; use it 
>> unconditionally
> 
> So you propose to shift the burden of picking which define to use to each and 
> every libc++ user

Not at all!  I merely suggested that rather than having three different macros 
concerned with the spelling of `nodiscard`, you reduce it to *one* macro: 
`_LIBCPP_NODISCARD`. There would be a "sensible default" (namely, whatever 
spelling Does The Right Thing on the detected compiler), and then users who 
didn't want that default would be free to override it by passing `-D` on the 
command line. The `#ifdef` I suggested is a clean, concise way of allowing the 
user's explicit choice to override the libc++-provided "sensible default", no 
matter whether the user is trying to opt-in on an unsupported compiler 
(`-D_LIBCPP_NODISCARD='[[foobar::nodiscard]]'`) or opt-out on a supported 
compiler (`-D_LIBCPP_NODISCARD=''`). It would be a way to eliminate the soup of 
`ENABLE_` and `DISABLE_` macros.

Of course the benefit of this idea decreases if we must preserve 
`_LIBCPP_DISABLE_NODISCARD_AFTER_CXX17` for historical reasons anyway.


Repository:
  rCXX libc++

https://reviews.llvm.org/D45179



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to