cdecl-11.0
K&R C function returning struct
Now correctly forbidding functions returning struct
in K&R C.
Digraphs before C95
Either using a digraph or setting the digraphs option in a language before C95 now prints a warning that digraphs are not supported until C95.
Trigraphs in K&R C
Either using a trigraph or setting the trigraphs option in K&R C now prints a warning that trigraphs are not supported until C89.
Optional ()
for destructor
Declaring a destructor in English now optionally allows ()
.
C++23
C++23 is both now allowed for and the default C++ version. However, there are as of yet no differences with respect to declarations between it and C++20.
inline namespace
command
inline
is now a command in C++11 and later (presumed to be followed by namespace
) and namespace
is auto-completable.
Nested inline
namespaces
C++20's nested inline namespaces are now supported:
namespace A::inline B { // ...
show typedef
& show using
autocompletion
The keywords typedef
and using
are now auto-completable.
In-class default
, delete
, and noexcept
constructors
These are now accepted.
static
main()
in C
This is now correctly forbidden.
Fixed C++ raw string literals
A raw string literal like R"abc(X)ab)abc"
was previously not parsed correctly.
Fixed multiple pointers to function having a Microsoft calling convention
Declarations like:
cdecl> explain int (__stdcall **f)()
are now handled correctly.
Fixed typedef
of void
typedef void V
is now correctly allowed and V p
is now correctly flagged as an error.
Fixed pointer to typedef
of reference
Declarations like:
typedef int &RI
explain RI *p
are now correctly flagged as illegal.
Fixed array of reference
An array of reference (or rvalue reference) is now correctly flagged as an error.
Fixed function returning typedef
of array
Declarations like:
typedef int A[2]
explain A f()
are now correctly flagged as illegal.
Fixed "pointer to function returning pointer to array" function argument
A declaration like int f(char (*(*)())[])
is now parsed correctly.