upvote
C++23 modules make 2. a moot point.

Same applies to point 3, when used alongside external templates.

reply
Why use C++ at that point? Also, pre declaring classes instead of including the corresponding headers has quite a few drawbacks.
reply
References, for one. Also there’s a huge difference between “avoid templates unless necessary” and “don’t use templates”.
reply
RAII? shared pointers?
reply