0
C++ and templates are awesome tools, and allow you to let other people customize your class like crazy.
template <typename Object, bool Shared>
class CFoo {
template <int Filter,
template <int,typename,typename> typename Other >
Other<Filter, Object, Foo1<Derived, Shared>> bar()...