I have a library which provides class Base and a class Derived. I want to make a class which inherits publicly from Base (it can be used polymorphically as a Base, but not Derived), but privately inherits from a Derived class. Or at least I want private access to Derived but public access to only Base. Normally, I'd inherit from Base and have a member of Derived, and then manually delegate all the functions, however there are a lot of member functions and I'm hoping for a better way. Does one exist?