John Baldwin jhb at FreeBSD.org wrote on
Thu Feb 27 16:55:01 UTC 2020:

> On 2/27/20 7:30 AM, Warner Losh wrote:
> > Author: imp
> > Date: Thu Feb 27 15:30:13 2020
> > New Revision: 358392
> > URL: https://svnweb.freebsd.org/changeset/base/358392
> > 
> > Log:
> >   _Static_assert is to be preferred to CTASSERT.
> >   
> >   Document the existing prefernce that _Static_assert be used in preference 
> > to the
> >   old CTASSERT we used to use for compile time assertions.
> 
> Actually, I think what we want to use is static_assert().  The intention in
> userland C is that _Static_assert() is an internal keyword and <assert.h>
> adds static_assert() as an alias, similar to <stdalign.h> defining alignas,
> etc.  I think what we should do for the kernel is have <sys/systm.h> define
> map static_assert to _Static_assert and replace existing _Static_assert
> usage with the proper spelling.
> 

Be warned static_assert is a C++ keyword as of C++11.

c++11 added: static_assert(bool_constexpr,message)
c++17 added: static_assert(bool_constexpr)

C11 added _Static_assert(expression,message)
C2x gets  _Static_assert(expression)

C11 added "#define static_assert _Static_assert" to <assert.h>

It makes for a bit of a mess in code to be allowed
to be processed by both C and C++.

The wording may need to specify enough to tell what to
do for such code and the headers may need logic to
cause that context to exist across both languages
when the header is allowed for both.

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to