The second part of my series about C++17 in detail. Today I’d like to focus on features that clarify some tricky parts of the language. For example, copy elision and expression evaluation order.
You all know this… C++ is a very complex language, and some (or most?) parts are quite confusing. One of the reasons for the lack of clarity might be a free choice for the implementation/compiler – for example to allow for more aggressive optimizations or be backward (or C) compatible. Sometimes, it’s simply a lack of time/effort/cooperation. C++17 reviewed some of the most popular ‘holes’ and addressed them. In the end, we got a bit clearer way of how things might work.