The ideal modern C++ without having to worry about "deprecated" ways of coding, is more the exception than the rule.
That doesn't even make sense. Maybe you meant "destructors" but even then it has nothing to do with reality
> a group of obviously related units of which the degree and nature of the relationship is imperfectly known[0]
It's impossible for any single person to understand how the C++ language interacts with itself without a reference manual: it's grammar can lead to the most vexing parse; it has metaprogramming builtin using templates or macros, allowing for arbitrary code execution at compile time; it has a ridiculous number of ways to construct an object (move constructors, copy constructors, default constructors, is the object heap or stack allocated, are you using bracket initialization or parenthesis, etc); and more.
Also, I pointed this out in a comment awhile ago, but as of C++17 and over 20 years of writing technical books about C++, Scott Meyers doesn't trust himself to determine whether a given code snippet is or is not valid C++:
> It's not that I'm too lazy to do it. It's that in order to fix errors, I have to be able to identify them. That's something I no longer trust myself to do.[1]
If this language isn't considered complex, I don't know what is.
[0]: https://www.merriam-webster.com/dictionary/complex
[1]: https://scottmeyers.blogspot.com/2018/09/the-errata-evaluati...
If you've moved on then your insight is outdated.