9 ms·
Disclaimer: I don't program in C++ day to day, so maybe my experience is atypical. Moves and rvalue references (and whatever a PR-value is) and even RVO scare
by repsilat 9y ago
Disclaimer: I don't program in C++ day to day, so maybe my experience is atypical.
Moves and rvalue references (and whatever a PR-value is) and even RVO scare me. They make me want to pass pointers around, because at least I know for sure what'll happen then. (And, funnily enough, C++ seems worse than dynamic languages for this -- more magic around function calls and returns than C or Python or JavaScript.)
- banachtarski 9y agoThey really aren't that bad... in fact, they're pretty useful. Source: your everyday C++ programmer
- stochastic_monk 9y agoThey’re great, really. Yes, it takes effort to master, but then you can generate faster, safer, generic code with much less effort. Source: Another everyday C++ programmer. There are dozens of us. Dozens!
- verall 9y agoIt's unfortunate when your codebase is C++03 only and intends to remain that way for compatabillity with other vendors. Yay for consumer electronics!
- banachtarski 9y agoOut of curiosity what breaks compatibility?
- verall 9y agoMy understanding is that there are partner venders who have old toolchains set up only for C++03 and thus would have to upgrade their toolchains to build our API if we upgraded.
- stinos 9y agoscare me ... because at least I know for sure what'll happen then. Which is just because once you learned how pointers behave. Similarly, if you'd just take the time to learn the basics of rvalues, moving, RVO, ..., you won't be scared by them anymore. Might thake longer than pointers, sure, but it's worth it.
- zach43 9y agoMaybe this is just my experience, but it took me far longer to understand the subtleties of move semantics, rvalues, and RVO than to understand pointers and references in C++. And this is not even getting into “universal references” (which I don’t have a comfortable understanding of either)
- dcuthbertson 9y agoThere's a YouTube video [1] of a great talk by Scott Meyers: Effective Modern C++ (part 1). He covers universal references and how they relate to other kinds of references in either that one or Part 2 [2]. I found the videos very helpful. Edit - I may have the wrong videos linked. It could be his talk on Universal References [3] that I'm thinking of. It's been a while. [1] https://www.youtube.com/watch?v=fhM24zs1MFA https://www.youtube.com/watch?v=fhM24zs1MFA [2] https://www.youtube.com/watch?v=-7qwpuA3EpU https://www.youtube.com/watch?v=-7qwpuA3EpU [3] https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Scott-Meyers-Universal-References-in-Cpp11 https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-20...