[PATCH] assert: Support assert as variadic macro for C++26 [PR27276]
Tomasz Kaminski
tkaminsk@redhat.com
Thu Feb 5 15:40:40 GMT 2026
On Thu, Feb 5, 2026 at 4:36 PM Florian Weimer <fweimer@redhat.com> wrote:
> * Tomasz Kamiński:
>
> > +# if __ASSERT_VARIADIC
> > +# define assert(...)
> \
> > + ((__VA_ARGS__) \
> > + ? (void)(1 ? 1 : bool(__VA_ARGS__)) \
> > + : __assert_fail (#__VA_ARGS__, __ASSERT_FILE, __ASSERT_LINE, \
> > + __ASSERT_FUNCTION))
>
> Doesn't this evaluate __VA_ARGS__ multiple times?
>
I got the same question initially when I saw this solution, but
the second bool(__VA_ARGS) is in the false branch of the ternary:
1 ? 1 : bool(__VA_ARGS__)
So it is never evaluated.
>
> Thanks,
> Florian
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20260205/243ba274/attachment.htm>
More information about the Libc-alpha
mailing list