Herb Sutter blogged about the Oulo ISO C++ meeting. There’s a link to an interview he did for the excellent CppCast podcast and also to a reddit post on features approved at the meeting.
As Herb called out in the interview, I think the following two features will be widely used:
Structured Bindings
This is interesting because I’ve been using the std::tie syntax for a while, despite the clumsiness when you need to introduce new variables to take the return types (leaving them uninitialised until assignment). The proposal above avoids that problem.
tuple<T1,T2,T3> f(/*...*/) { /*...*/ return {a,b,c}; } // BEFORE T1 x; T2 y; T3 z; std::tie( x, y, z ) = f(); // AFTER auto [x,y,z] = f(); // x has type T1, y has type T2, z has type T3
Initialisation clause for if and switch
This proposal makes if/switch more consistent with for loops that allow separate initialisation/increment clauses as well as a condition. So now you can initialise a variable separately from the if condition, which also allows you to limit the scope of that variable.
// BEFORE status_code c = bar(); if (c != SUCCESS) { return c; } // AFTER if (status_code c = bar(); c != SUCCESS) { return c; }