访问typedef作为类的非静态成员?

时间:2011-11-22 23:03:05

标签: c++ templates typedef

基本上,我想做的是这样的事情:

template<typename x,typename y,typename z>
struct SomeTemplateClass {
 typedef x myType;
};

...然后

SomeTemplateClass<LongVariableNames,ILikePie,AndCheese> cheese;
cheese.myType i;

因此i的类型为LongVariableNames

我知道做这样的事情可能是不好的做法,但我只是想知道。做这样的事最简单的方法是什么?

我的意思是,应该可以在编译时轻松解决这个问题,因为强大的静态类型等等。如typeof()那样sizeof()就好了。

1 个答案:

答案 0 :(得分:5)

通常情况如下:

typedef SomeTemplateClass<LongVariableNames,ILikePie,AndCheese> foodType;

foodType cheese;

foodType::myType i;

在C ++ 11中,您也可以使用decltype(cheese)::myType,但这非常难看。