Hello,
i have 2 choices:
1) runtime
class BaseD
class D1 .... D200 derived from BaseD (all of them singletons,
don't really store any data in them, they just provide policy)
and class C1... C100 (also all derived from BaseC)
for each Cxxx, there is a perferred D to deal with it, but "some" other Ds work also...
the library user creates instances of Cxxx,
I could then have a global runtime std::map