Part of the guideline says "If you want to do private inheritance, you should be including an instance of the base class as a member instead". I suspect this was written in a context that no longer applies (language features and design idioms have changed).
The discussion of interface inheritance seems reasonable enough. But the choice to ban implementation inheritance is naive. This is, I think, a case where there is a clear benefit to implementation inheritance using a private base class. We should update the guidelines to cover such cases.
Originally posted by @AlanGriffiths in #5194 (comment)
Part of the guideline says "If you want to do private inheritance, you should be including an instance of the base class as a member instead". I suspect this was written in a context that no longer applies (language features and design idioms have changed).
The discussion of interface inheritance seems reasonable enough. But the choice to ban implementation inheritance is naive. This is, I think, a case where there is a clear benefit to implementation inheritance using a private base class. We should update the guidelines to cover such cases.
Originally posted by @AlanGriffiths in #5194 (comment)