C++17 is feature complete
Enamex via Digitalmars-d
digitalmars-d at puremagic.com
Thu Jul 7 15:24:43 PDT 2016
Some updates:
https://www.reddit.com/r/cpp/comments/4rj7us/trip_report_c_standards_meeting_in_oulu_june_2016/
Especially interesting are the mentions of 'accepted'
features/proposals for 'C++20', including:
- `operator.` (opDispatch) which /might/ even make it into C++17
given push by some international body; also includes some facets
of `alias this` as it's hoped to be a core part of some of the
reflection proposals [1]
- designated initializers (from C) (D's static initializers but
tied to struct names and usable anywhere `MyStruct{ field2: 0,
field1: 'a' }`;
and some requiring 'further thought' like:
- discriminated unions (even full-blown pattern matching); [2]
- 'overload sets as function arguments' (basically the delegate
pattern in D for passing a lazily determined member function
pointer (or an untyped closure in general));
- contracts ('expects = in' and 'ensures = out()' but they take
one big boolean expression; a bit more complicated than in D, but
they're adding them in, not taking them out) [3]
- 'parameter packs outside templates' which could go several ways
from being basically native tuples with dedicated syntax, to
almost (? not sure about differences in the proposal's
specification vs behavior in D) the same thing as alias tuples in
D now. [4]
I tried to focus on stuff already in D and stuff people are
asking to add to D and the differences between the languages in
them. I'll stop if it's deemed too off-topic :/
[1] http://wg21.link/p0252
http://wg21.link/p0352
http://wg21.link/p0060
[2] http://wg21.link/p0095r1
[3]
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4415.pdf
[4]
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0341r0.html
More information about the Digitalmars-d
mailing list