It is true that you need really good reasons to make virtual functions, or to do metaprogramming. I, also, usually avoid them. I have not made a more than two-level inheritance hierarchy in this millennium. There is no substitute for taste, design sense, or insistence on simplicity.
Stepanov referred to OO as "gook", and has publicly regretted making member functions like size().
But putting types to work for you is a great force multiplier.
Stepanov referred to OO as "gook", and has publicly regretted making member functions like size().
But putting types to work for you is a great force multiplier.