This update for cdecl fixes the following issues:
Update to release 10.0
* cdecl now recognizes "asm" just to say it's not supported.
* Improved operator<=> now checks for usable return type.
* Default relational operators in C++20 are now supported.
* C++'s raw string literals R"delim(...)delim" are now supported.
Update to release 9.10
* The show command now supports globs.
Update to release 9.9
* Added more predefined types: iconv_t, locale_t,
posix_spawnattr_t, posix_spawn_file_actions_t, regex_t,
regmatch_t, and regoff_t.
* A pointer to function with qualifiers is now caught for C.
* Nested types are now correctly caught as an error in C.
* A scoped name having a bit-field width is now caught as
* A declaration having a storage class and a bit-field width is
now correctly caught as an error.
Update to release 9.8
* extern "C" using declarations are now supported.
* The help for pseudo-English now correctly includes auto as a
storage class for C++98 and C++03.
Update to release 9.7
* Multi-type typedef support
Update to release 9.6
* More constructor & destructor warning checks
* Type redefinition error now includes existing type
Update to release 9.5.1
* A function as a parameter is now automatically converted to a
pointer to function per 18.104.22.168(4) of the C standard.
Update to release 9.5
* Added enum, class, struct, and union attribute specifier
* Added fixed-type enum support.
* Added C2X __attr__ aliases.
* Added support for parsing C++ attribute arguments.
* Added support for parsing C++17 using in attributes.
* Added support for parsing GNU __attribute__.
Update to release 9.4
* Improved constructor & destructor declaration support
* Ability to explain forward declarations
* Ability to catch types having bit-field widths
Update to release 9.3
* Declarations with bit-field widths are now supported.
Update to release 9.2
* In-class constructor declarations without any
storage-class-like type are now supported.
* Both final and override are now recognized as keywords only
in a member function declaration context.
Update to release 9.1
* Implicit int functions in K&R C are now supported ("set knrc",
Update to release 9.0
* The `show` command can now alternatively show types as
* For `predefined` or `user`, the `show` command now shows only
types that are valid in the current language.
* When printing `enum`, `struct`, `class`, or `union` types,
they are shown differently depending on what language the
type was defined in and whether the current language is C or
Update to release 8.3
* "Did you mean ...?" added
* Multiple, comma-separated declarations are supported
Update to release 8.2
* Pseudo-English now allows "align" as a synonym for "aligned".
* The "set" command can now take multiple options.
* C99 type-qualified array function arguments can now have a
size omitted. ("void f(int a[const])")
Update to release 8.1
* Added support for Unified Parallel C
Update to release 8.0
* Support for C2X and Embedded C.
* More support for C++20.
Update to release 7.4.1
* The legal signed main() signature is now accepted.
* "East const" is now ignored when explaining gibberish.
Update to release 7.3
* Explaining a declaration like: "explain void f(double (*a))"
crashed; this was fixed.
Update to release 7.2
* Added support for composing and deciphering C++ overloaded
new, new, delete, and delete operators.
* Added types std::align_val_t, std::destroying_delete_t, and
Update to release 7.1
* Added GNU C's __complex, __complex__, __const, __inline,
__restrict, __signed, __signed__, __volatile, and
Update to release 7.0
* New -E/--east-const command-line option.
* Added support for the [[no_unique_address]] attribute
Update to release 6.11
* Added __inline__, __restrict__, and __thread
* Added GNU C types
* Added WIN32 types
Update to release 6.10
* The "long long" type was incorrectly allowed in C89; it
was not added until C99.
* Added pthread.h, threads.h, and C++ thread types.
Update to release 6.9
* The `cast` command now accepts `as` and `to` in addition
* Autocomplete was missing `explain-by-default;`.
Update to release 6.8.2
* When in explain-by-default mode, a special case has to be made
for `const` and `static` keywords, since the `explain` command
is implied only when not followed by the `cast` keyword.
Update to release 6.8.1
* Reset lexer start-state
Update to release 6.8
* Since the set explicit-int option was added (an option that
takes a value), a set lang=lang option was added.
Update to release 6.7
* Add emission of explicit "int" to English output mode.
Update to release 6.6.2
* Command-line long-options.
* Distinguishes among K&R C, C89, C95, C99, C11, C18, C++98,
C++03, C++11, C++14, C++17, and C++20.
* Support for C89 const, restrict, and volatile declarations.
* Support for the standard C95 type wchar_t.
* Support for the standard C99 types _Bool, _Complex,
_Imaginary, int8_t, int16_t, ptrdiff_t, size_t, etc.
* Support for C99 static, type-qualified, and variable length
array function arguments.
* Support for the standard C11 atomic types atomic_bool,
* Support for the standard C11 and C++11 types char16_t,
char32_t, and thread_local.
* Support for inline function and variable declarations.
* Support for typedef declarations.
* Support for variadic function arguments.
* Support for C and C++ alternative tokens (and, and_eq, etc.).
* Support for C++ mutable data members, namespaces and scoped
names, new-style casts, throw, overloaded operators, and
friend, virtual and pure virtual member function
declarations, and user-defined conversion operators.
* Support for C++11 constexpr, enum class, final, noexcept,
override, rvalue references, user-defined literals, using (as
a typedef synonym), the function trailing return-type syntax,
and ref-qualified member function declarations.
* Support for C++ [[carries_dependency]], [[deprecated]],
[[maybe_unused]], [[nodiscard]], and [[noreturn]] attribute
* Better warning and error messages complete with location
information and color.