5 ms·
Some of these proposals are really intriguing. More details: Concepts: http://en.wikipedia.org/wiki/Concepts_%28C%2B%2B%29 http://en.wikipedia.org/wiki/Concept
by joliss 11y ago
Some of these proposals are really intriguing. More details:
Concepts: http://en.wikipedia.org/wiki/Concepts_%28C%2B%2B%29 http://en.wikipedia.org/wiki/Concepts_%28C%2B%2B%29
Modules: http://clang.llvm.org/docs/Modules.html http://clang.llvm.org/docs/Modules.html
Coroutines: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3708.pdf http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n370...
operator. (for proxies): http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4173.pdf http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n417...
Uniform call syntax: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4174.pdf http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n417...
- apardoe-MSFT 11y agoI'd suggest looking at the papers that were submitted for discussion at the upcoming Lenexa Standardization meeting for references. They're located here: https://isocpp.org/blog/category/standardization https://isocpp.org/blog/category/standardization Here's numbers for the ones you listed: Concepts: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4361.pdf http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n436... Modules: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4465.pdf http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n446... Coroutines: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4397.pdf http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n439... & http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4398.pdf http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n439.... Also http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4134.pdf http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n413... operator dot: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4477.pdf http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n447... Uniform call syntax: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4474.pdf http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n447... Here are some others that Stroustrup listed. I think they're probably important proposals. I imagine Stroustrup has at least some priority order in his list. Ranges: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4382.pdf http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n438... Comparisons: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4475.pdf http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n447... & http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4476.pdf http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n447... array_view: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4346.html http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n434...
- agumonkey 11y agoLtU posts about concepts being rejected for c++0x : http://lambda-the-ultimate.org/node/3518 http://lambda-the-ultimate.org/node/3518 (voted off) http://lambda-the-ultimate.org/node/4450 http://lambda-the-ultimate.org/node/4450 (suggestions for future work)
- thechao 11y agoThere were two fundamentally different proposals for concepts: Indiana— concepts are records of signatures; checking is done "by signature"; an arbitrary mapping (adapter) can be defined. Notable authors: Doug Gregor, Jeremy Siek, Jaakko Jarvi, a lot of others I'm insulting by forgetting. Texas— concepts are predicates of "actions" (usage of signatures; expressions). Notable authors: Bjarne Stroustrup, Gaby Dos Reis; later, Andy Sutton. The crux of the issue is that Doug Gregor actually implemented the Indiana proposal (twice?) and Gaby never implemented the Texas proposal. By 2009, the Indiana proposal was well on track to being accepted; then ... it wasn't. Fast forward 5 years, and now we've got a re-imagining of the Texas proposal, with no serious dissent, as all the Indiana folks moved on (out of exasperation, frustration; age; interest, whatever).
- maxlybbert 11y agoTo be fair, Stroustrup has made an effort to explain his reason for encouraging the Committee to drop the Indiana proposal ( http://www.drdobbs.com/cpp/the-c0x-remove-concepts-decision/218600111 http://www.drdobbs.com/cpp/the-c0x-remove-concepts-decision/... ). He's also mentioned the Indiana proposal led to increased compile times (as in at least 100% slower) and that the Committee came up with a ridiculous number of concepts for the standard library, which suggested they were looking at things wrong. For instance, there's little value in having CanCompareForEquality, CanCompareForInequality, HasLessThan, HasGreaterThan, HasLessThanOrEqual, and HasGreaterThanOrEqual be separate concepts; they should be grouped into, say, HasTotalOrdering, EqualityComparable, and HasPartialOrdering. The current STL gets this wrong, it wants a concept of HasPartialOrdering but it actually requires HasLessThan (and fakes equality comparison by assuming if a is not less than b and b is not less than a, then a and b must be equal). I don't fault Stepanov for this mistake, it's not obvious and it's relatively easy to tell people "just implement operator< for your types and we'll be able to sort them when needed" instead of "implement the relational operators that make sense; some implementations may use operator< to sort, while others may use operator>, and others operators < and <=, and yet others operators <, !=, and ==, etc."
- dfan 11y agoRanges are the killer feature for me. They'll actively improve my everyday code.
- banachtarski 11y agoYou mean the ranges that already exist?
- dfan 11y agoAssuming that the ranges that already exist are the ones that get incorporated into the C++17 standard, yes.
- getsat 11y agoWhy is uniform call syntax a good addition? What is the benefit? I only ever remember hearing of one programming language supporting it, and I can't even remember what it is. Maybe it was Nim?
- ksherlock 11y agoPattern matching might be similar to this: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3449.pdf http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n344... Source code (implemented with a lot of help from C macros): https://github.com/snaewe/typeswitch https://github.com/snaewe/typeswitch