I’ve a situation that is like this contrived example:
template<class TFeature> struct Controller {};
template<class TController,typename T> struct Feature {
typedef Feature<TController,T> FeatureType;
};
typedef Controller<Feature::FeatureType,int> DefaultController;
The Controller is templated to accept features and my problem is that some of the features need the type of the controller as a template parameter. This makes the typedef on the last line of the sample not compile.
Is this possible or do I need to rethink the design?
In order to accomplish this you should do some meta programming magic(and believe me it is not an easy task). But if you really nead it and using
boostis an option for you take a look atboost::mpland you can have something like this: