【发布时间】:2011-12-04 00:16:52
【问题描述】:
我在了解 TypeList 或模板列表时遇到了一些麻烦。那就是:
class nulltype{};
template <typename HEAD, typename TAIL>
struct tlist
{
typedef HEAD head;
typedef TAIL tail;
};
template <class TList>
class OutputClass
{
public:
void output(Type t)
{
std::cout << t << endl;
}
};
typedef tlist<double,tlist<float,NullType> > floatingPoints;
typedef tlist<std::string,tlist<char *,NullType> > text;
int main()
{
OutputClass<floatingPoints> floats = OutputClass<floatingPoints>();
floats.output(1.0f);
OutputClass<text> strings = OutputClass<text>();
floats.output("hello");
return 0;
}
基本上我的目标是我希望 OutputClass.output 输出传递给它的参数,但前提是该类实例 typelist 包含传递给函数的类型。 IE。参考上面的代码:floats只能输出其类型列表“floatingPoints”定义的float类型和double类型。如果传入一个字符串或整数,我希望它会出错。
我正在努力寻找任何关于如何做到这一点的示例,我已经找到了一百万次的索引示例和长度示例,它们对我帮助很大,但我可以似乎没有弄清楚这最后一点。我们将不胜感激。
【问题讨论】:
-
啊,别管我的回答,我完全误读了这个问题。
-
没问题,感谢您的光临和破解 :) 非常感谢。