Announced today, just in time for the new year:
EDG C++ front end 4.10 released
Version 4.10 of the EDG C++ Front End has been released.
This version provides the following new features:
1) This version provides the following new C++14 features:
Lambdas can specify expressions, not just local variables, to be captured. For example:
auto l = [x = 42]{ return x + 1; };Generic lambdas are accepted, allowing auto parameters to define a call operator template. For example:
auto l = [](auto p) { return p*2; };Binary literals and apostrophes as digit separators in numeric literals are accepted.
int i = 0b0110; long l = 123'456'789; // Equivalent to 1234567892)
__cpluplus
in C++14 modes:The standard for C++14 has now been approved and specifies the value of the
__cplusplus
predefined macro as201402L
. The front end uses that value when--c++14
mode is specified, except that in Microsoft and GNU modes it adopts the value set by those compilers. See the Changes file for more details.3) GNU statement expressions with class type results:
Version 4.9 of the front end enabled the ability to have destructible entities in GNU statement expressions (GSEs), but with the restriction that the result expression of a GSE cannot be of a class type requiring nontrivial copy construction or nontrivial destruction. This restriction has been removed. For example:
struct D { D(D const&); }; D g(D d) { return ({ d; }); // Now accepted. }4) Performance improvements:
As part of what will be an ongoing effort, a number of changes were made to improve the overall speed of the front end. This has generally resulted in an improvement between 1 and 6 percent in our testing, but can be significantly more for some IA-64 mangling cases.
As usual, we have fixed bugs, added many minor features, and continued to improve our various compatibility modes.
Add a Comment
Comments are closed.