svn commit: r358392 - head/share/man/man9
Mark Millard
marklmi at yahoo.com
Thu Feb 27 22:45:08 UTC 2020
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)
More information about the svn-src-head
mailing list