devel/cdecl: update to 5.0.
pet portlint.
Added all C/C++ keywords
All C/C++ keywords have been added to the lexer/parser to prevent declaring variables or functions having names that are keywords. For example:
declare break as int
is now correctly reported as an error.
Additionally, names that are keywords is later versions of C/C++, while legal, now issue warnings, e.g.:
cdecl> declare class as int
^
18: warning: "class" is a keyword in C++98
int class;
Operator overloading
Added support for composing and deciphering C++ overloaded operators.
Fixed const/volatile reference
Declarations of the form:
declare r as const reference to int
declare r as volatile reference to int
are now correctly reported as an error.
Added member/non-member to functions
You can now explcitly specify either "member" or "non-member" in declarations:
declare f as const member function
Additionally, cdecl will include "member" in function explanations when it can infer a function is a member function:
cdecl> explain void f() const
declare f as constant member function returning void
Fixed friend const/volatile/override/final/virtual/reference functions
Declarations of the form:
declare f as friend const function returning bool
are now correctly reported as an error.