Skip to content

cdecl-11.0

Compare
Choose a tag to compare
@paul-j-lucas paul-j-lucas released this 28 Sep 01:53
· 4525 commits to master since this release

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.