Re:Go by Example
by bstamour on Friday January 17, 2014 @12:45PM
(#7077185)
With C++14 this becomes
Even simpler.
[ Parent
| on HN ]
What are the C++14 parts here? I haven't been paying much attention to the C++14 standards shaking out.
dfrey already asked about why begin/end are functions now.
I see auto being used inside the lambda. Was that not allowed in C++11? I got sucked into the "use auto everywhere" mantra, so I just imagined it was possible, but could easily see if it were not. That is probably the biggest decrease in size to the original code posted.
I see return type inference. That is one thing I have heard about being new in C++14. To be honest, I would rather see the explicit return type there. Inference is always nice, though.
> I see auto being used inside the lambda. Was that not allowed in C++11?
It wasn't:
Thanks for the reply. A comment under the accepted answer points to the wikipedia article on C++14, which has information on the new language and new standard library features [0]. I should have thought to check there first.
I omitted the return type (which is allowed for lambdas in C++11, and now arbitrary functions (with some conditions) in C++14) because it was a 1-liner. The bool return type can be deduced by the compiler automatically (or else it would fail to compile) and by the human by the operator < in use, the fact that it's being passed to sort, etc.
Why are "begin" and "end" functions now instead of methods on the iterator? Do they consider it better because now you can pass around functions, but not methods?
Re:Go by Example
by fauigerzigerk on Friday January 17, 2014 @01:57PM
(#7077682)
Because it works with arrays.