Open utterances-bot opened 1 year ago
I don't have much trouble with initialisation of objects and variables so much as I do with understanding move semantics, but I suppose they are related so I do have a problem with objects and variables.
I believe initialization has become easier with modern C++ over time. Keeping track of nested objects as they are initialized can sometimes be challenging.
@boxa72 - see https://leanpub.com/cppmove
I never thought initialization in C++ would be complex to have a separate book that too in modern C++! Thank you for collaborating with many experts and making a book on it!
Initialization got much easier with the latest standards but anyway there is still no standard way to initialize objects that works always correctly and without drawbacks.
I find initialization has gotten more powerful, but with power can come additional complications. Simple things have gotten much easier... While the more esoteric possibilities are, of course, more difficult to fathom...
Part of the issue is the way that C++ is incrementally advanced. There are now new versions every 3 years with new features based upon committee voted-for change proposals. There is also the desire to keep C++ backwards compatible as far as possible. Hence a majority of C++98 code will still compile OK with the latest standard (although may have a few warnings...). There is very little that has been removed over the years (mainly to do with functional and auto_ptr). If you started designing C++ now from scratch there's probably quite a bit you'd leave out or change. Hence new C++ - like languages have been developed but outside of niche groups haven't really caught on for widespread usage.
I think initialization becomes more and more advanced over time. I personally feel like I don't understand pointers any better every time my senior colleagues teach me slick ways to initialize. User-defined? User-declared? Explicit? What is the difference. The most complex topic for me is definitely anything beyond default initialization. Personally, I would want to get more advanced in initialization. I think that initialization has definitely gotten more confusing for me in modern C++
For me the most complex topic in c++ is about pointers and references. I still find it difficult to understand them. In my opinion, Initialization has become easier with modern c++.
C++ Initialization Story in Print - C++ Stories
I’m thrilled to announce the print/paperback edition of “C++ Initialization Story!” After nearly a year of updates and enhancements for the electronic version, this comprehensive resource is now complete! You can purchase the book in a variety of formats, and to celebrate this major update, I’m hosting a giveaway where you can get the book for free :)
https://www.cppstories.com/2023/init-story-print/