I have a class that is getting a huge number of template parameters (mostly a bunch of size_t used for vector sizes). They have a natural organization into groups, but almost all of them have a default as 0.
How do you suggest that I design the template parameter for this? Is there any way to use some kind of associative container so I could look these up by "name" and default to 0 if they aren't there? I can't see how to use mpl::map to do this kind of stuff.
Simplified Pseudocode:
--------------------
What I have:
template<std::size_t IndividualSize = 0, std::size_t AggregateSize> //Many others
class my_problem{...};
What I want:
template<class StateSizes> class MyProblem{...}
Called something like:
typedef my_problem<map<AggregateSize, 2> > my_problem_type;
where AggregateSize is an enum, placeholder struct, etc. And in this case I would default IndividualSize to 0.
-Jesse