Every time I see one of these new revisions, I can't help but think that the type system has become the roadrunner and the STL has become wile e coyote, complete with dynamite and cartoon physics.
Seriously though, does anyone actually use any of the post-C++-11 stuff? I can count on one hand the times I've seen nonironic use of a C++-11 extension in a real project, and I've never seen use of -14 or -17 extensions.
I've used boost::optional for a long time. It is long overdue in the standard. NULL should almost never be a valid value. It is also quite useful to enable safe lazy initialization without heap allocation.
std::variant is just a discriminated union. That's useful for lots of things.
C++11 is old school at this point. Other than for legacy reasons, no one should be using the older stuff.
Most of it seems pretty real-world to me. But if IIUC that std::filesystem means I don't have to write separate code for windows and linux, then it's hard not to imagine EVERYONE using that.
Yes, good C++ programmers use them. By 'good' I mean good enough at their profession to have bothered to pay attention to developments outside of their immediate experience over the last 5-10 years. Which is a pretty low bar, really.
I'm with you on most of it... the one thing that seems really appealing is concepts and constraints. If for no other reason than to restore sanity to template error messages. Check out Bjarne's writeup about it for another nice perspective: https://isocpp.org/blog/2016/02/a-bit-of-background-for-conc...
As someone that does Java and .NET consulting, with an ocasional use of C++ on the projects, I would say outside the SV darlings (Google, FB, Microsoft, Apple, ...), sadly very few people do.
While I do try to keep up with the standard, the majority of the code I bump into, on those projects, is still the typical pre-C++98 style and most devs aren't that keen in moving forward.
Specially in projects that are mostly driven by changing consulting company every few budget rounds.
I feel like he went through all this effort just to make the joke "A more perfect union."
But seriously, a great write up. std::any looks like it could be dangerous in the hands of the inexperienced, especially in a sea of other changes that makes working with types easier and safer.
The "structured bindings" feature seems potentially dangerous. I guess it helps unpacking tuples and getting references to tuple members. But it seems to have opened up a whole new set of side effects.
This is true, though generally anytime one uses `auto` it should be `const auto&` to avoid swallowing the quantifiers and potentially costly copies anyways.
[+] [-] trelliscoded|9 years ago|reply
Seriously though, does anyone actually use any of the post-C++-11 stuff? I can count on one hand the times I've seen nonironic use of a C++-11 extension in a real project, and I've never seen use of -14 or -17 extensions.
[+] [-] jnwatson|9 years ago|reply
std::variant is just a discriminated union. That's useful for lots of things.
C++11 is old school at this point. Other than for legacy reasons, no one should be using the older stuff.
[+] [-] quizotic|9 years ago|reply
[+] [-] DerDangDerDang|9 years ago|reply
[+] [-] n00b101|9 years ago|reply
Many major C++ projects are using C++11, e.g. LLVM/Clang, Chromium, etc.
[+] [-] aaronmck|9 years ago|reply
[+] [-] pjmlp|9 years ago|reply
While I do try to keep up with the standard, the majority of the code I bump into, on those projects, is still the typical pre-C++98 style and most devs aren't that keen in moving forward.
Specially in projects that are mostly driven by changing consulting company every few budget rounds.
[+] [-] nurettin|9 years ago|reply
[+] [-] quizotic|9 years ago|reply
[deleted]
[+] [-] jwilk|9 years ago|reply
[+] [-] kevincox|9 years ago|reply
[+] [-] surye|9 years ago|reply
But seriously, a great write up. std::any looks like it could be dangerous in the hands of the inexperienced, especially in a sea of other changes that makes working with types easier and safer.
[+] [-] ndh2|9 years ago|reply
[+] [-] poofyleek|9 years ago|reply
[+] [-] quinnftw|9 years ago|reply
[+] [-] reacharavindh|9 years ago|reply