I'm very sad to see that reflection (or introspection) won't be making an appearance in c++17. Even limited introspection suggested in N3951 (http://woboq.com/blog/reflection-in-cpp-and-qt-moc.html) would be a great boon. Implementing features that would render Qt's preprocessor useless would be a great start and would standardize the tooling around c++ as well as reducing the amount of boilerplate code required to do something as simple as serialization.
Lack of serialization/marshalling support at the language level is a big issue. Serialization eats up a lot of CPU time in any message passing system, it's slow when done with run-time introspection, and it's something that can be done fast by code compiled for a specific structure. Attempts to speed up serialization usually involve preprocessors; there are preprocessor code generators for Google protocol buffers and OpenRPC marshalling.
It's probably possible to do serialization code generation at compile time in Rust.
Or any language where you can write code that generates code at compile time, like Nim. Unfortunately, any answer for C++ is unlikely to be so elegant, so preprocessing feels like a lesser evil.
If you had some way to apply templates to each element of a structure in sequence, you could use template metaprogramming to do marshalling. Suppose you could write
Well, to be honest C++ is trying too little, too late
And to be fair, the competition is still getting there where it really matters that you write C++ code. Go is starting to be supported on ARM, but given that it had issues with i386 I'm not sure what kind of issues might show up. Swift is for now Apple only, not sure about Rust
> Many of us only use first class support languages, regardless of other options might exist out there.
Yes, that's the reality unfortunately
There are very few options for small embedded hardware. Or even for desktop applications, as forgotten as they are today (though Java plays in this field)
"(Note that the Oulu meeting is when we plan to feature-complete C++17 and send it out for its main comment ballot, so that will be a big meeting. (It will also be within a few dozen kilometers of the Arctic Circle and is deliberately scheduled so that the summer solstice occurs during the meeting, so the joke is that there will likely again be lots of post-dinner sessions in Oulu, but for once we can guarantee there will be no evening sessions!)"
Does anyone know if they decided to fix rvalue reference and move semantics as proposed? Someone suggested that move semantics should be handled in the destructor, not the constructor.
I don't believe that any "destructive move" proposals have advanced out of Evolution and into Core. The issue is whether moved-from objects should be in a weird twilight state ("valid but unspecified"), which is the status quo, or whether moving from an object should straight-up destroy it. The question is... controversial.