[PATCH] D144285: [Clang] Implement CWG2518 - static_assert(false)

Corentin Jabot via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 7 23:53:30 PST 2023


cor3ntin added a comment.

In D144285#4176850 <https://reviews.llvm.org/D144285#4176850>, @rupprecht wrote:

> In D144285#4163004 <https://reviews.llvm.org/D144285#4163004>, @cor3ntin wrote:
>
>> If however we find this change to disruptive, we should inform WG21.
>
> Thanks for the explanation, I think I understand the issue now. I got totally thrown off by the title -- it's not about literally writing `static_assert(false)`, it's about deferring `static_assert` evaluation to template instantiations. Being able to write `static_assert(false)` (or any falsy constant expression) is just the common use case for this.
>
> So possibly the most trivial example of something that used to break, but now builds:
>
>   template <typename>
>   void Fail() {
>       static_assert(false, "my assertion failed");
>   }
>
> ... but will still fail as soon as you invoke `Fail<any_type>()` somewhere.
>
> It doesn't look like there's a lot of impact from this, and the breakages are corner cases like this. It might be worth mentioning this one case to WG21 but I'm not sure what I would change about the wording.

Will do !



================
Comment at: clang/www/cxx_dr_status.html:14915
   <tr class="open" id="2518">
     <td><a href="https://wg21.link/cwg2518">2518</a></td>
     <td>review</td>
----------------
rupprecht wrote:
> Is it possible to make this link point to https://cplusplus.github.io/CWG/issues/2518.html? This link is inaccessible to anyone not on ISO.
It will get updated whenever a new core issue list gets published, which will hopefully be soon-ish.
This file is generated automatically so changing the link might actually not be trivial


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144285/new/

https://reviews.llvm.org/D144285



More information about the cfe-commits mailing list