【发布时间】:2010-11-12 18:24:32
【问题描述】:
假设我有一个list<boost::any> 类型的列表,其中包含一些未知的类型。现在假设我想对列表中的多态元素应用一些操作。在这种情况下,请考虑 + 运算符。假设我知道列表将始终包含一组支持 operator+ 的同质对象,并且我希望将列表的每个元素之间的 operator+(某种意义上的“总和”)应用到新的 boost::任何。像这样的:
boost::any sum(list<boost::any> lst) {
// return lst[0]+lst[1]+lst[2] etc
}
如果不枚举所有可能支持 operator+ 的类型,有没有办法做到这一点?我对疯狂的想法非常开放。
(我确实有一个很好的理由这样做......我正在实现一个解释器)
【问题讨论】:
标签: c++ templates metaprogramming boost-any