cdecl-17.0
Abbreviated function template parameter packs
Functions with auto
parameters (abbreviated function templates) like:
int f( auto x )
have been supported since cdecl 9.6; this release adds additional support for parameter packs like:
int f( auto ...x )
Added help
option suggestions
Added suggestions to error messages for the help options commands
, english
, and options
, for example:
cdecl> help eglish
^
6: "eglish": no such command or option; did you mean "english"?
Constrained auto
For abbreviated function templates, constrained auto
declarations are now supported:
c++decl> explain C auto x
declare x as concept C
c++decl> explain C auto ...x
declare x as concept C parameter pack
auto
parameters in typedef
s
Use of auto
in typedef
function-like parameters is now correctly reported as an error:
c++decl> typedef int F(auto)
^
15: error: "auto" illegal in type definition
decltype
declarations
Now recognizing decltype
just to say it's not supported.
Glob help
The help text now defines "glob."
GNU --version
Now printing cdecl copyright year, author, license, free software statement, and no warranty statement to conform to the GNU Coding Standards; see https://www.gnu.org/prep/standards/html_node/_002d_002dversion.html.
Structured binding declarations
Structured binding declarations are now supported except that you don't assign them from anything (no =
expression):
c++decl> explain auto [x, y]
declare x, y as structured binding
c++decl> explain auto&& [x, y]
declare x, y as rvalue reference to structured binding
Fixed operator
declaration core dump
An invalid scoped operator name containing a keyword like:
c++decl> explain bool int::operator!()
would dump core; fixed.
Fixed --west-decl=t
for pointer to const pointer
Given:
c++decl --west-decl=t 'declare p as pointer to const pointer to int'
you'd incorrectly get:
int *const *p;
You now correctly get:
int* const* p;