C99.  Thus the C standard used is the default for the compiler,

The default C++ standard has been changed to C++17 where

available (which it is on all currently checked platforms): if not

C++14 or C++11 is used if available otherwise C++ is not supported.

correct (compiler-dependent) prototypes for Fortran BLAS/LAPACK

routines called from C/C++, and requires adjustment of many such

%% 2022-09 Recent \I{LLVM} (>= 13?) and Apple (>= 13?) clang support c++2b.

There is initial support for C++23 as several compilers are

C++23 features beyond a check that the compiler reports a

value greater than that in the C++20 standard.

There is support for a package to indicate the version of

the C standard which should be used to compile it, and for the

installing user to specify this.  In most cases

C compiler's default standard which is C17 (a `bug-fix' of C11) --

Use a standard that is at most C17.  The

intention is to allow legacy packages to still be installed when

later C standards become the default, including packages

using new keywords as identifiers or with K&R-style function

declarations.  This will use C17 if available, falling back

Use the C90 (aka C89) standard.  (As that standard

did not require compilers to identify that version, all we can

verify is that the compiler does not claim to be using a later

standard.  It may accept C99 features -- for example

Use the C99 standard. This should be rarely

needed -- it avoids the few new features of C11/C17 which can

be useful if a package assumes them if C17 is specified and

Use C23 (or in future, later).  Compiler/library

support for C23 is still being implemented, but

from 15.0.0 and GCC from 13 have quite extensive support.

needs to include that file itself.  Installation of a package with

which obfuscate the actual compile commands

calling BLAS/LAPACK routines from C/C++ is the default even for

packages.  (Unless perhaps packages call Fortran code from C/C++

's headers and without allowing for these

mis-compilation when interfacing with Fortran (

new definition causes compiler warnings with static initializers