2011-05-13 26 views
2

比方说,我有一个boost::mpl::list< A, B, C ...>如何获取相对于运行时索引的类型?

如何在运行时给定索引值的情况下访问?它甚至有可能吗?

+1

请提供你想要完成什么一些背景。 – 2011-05-13 18:47:48

+0

可能你会发现这个问题很有用:http://stackoverflow.com/questions/4798169/is-there-a-way-to-break-out-of-boostmpl-for-each – Nim 2011-05-13 19:53:43

+0

@Emile Cornier>无论context,mpl :: list是一个提供编译时类型容器语义的类型容器。所以问题很清楚:我得到了这个编译时类型列表,我想获取特定索引处的类型,但是我只在运行时获得索引,而不是编译时。 – Klaim 2011-05-13 20:26:18

回答

2

http://www.boost.org/doc/libs/release/libs/mpl/doc/refmanual/for-each.html

你基本上要遍历整个列表,并介绍了某种条件: 如:

struct F { 
    void operator(T &t) { 
     if (i_ == index) ... 
     ++i; 
    } 
    int index = ...; 
    int i_ = 0; 
}; 
for_each<L>(F(index)); 
+0

我不明白裸露的链接是如何回答问题的。 – 2011-05-13 18:54:05

+0

好的,我会澄清 – Anycorn 2011-05-13 18:57:36

+0

你知道吗?在检查了所有可能性之后,我发布了这个问题,我不得不离开我的工作场所。一旦我有了这个确切的想法。 TT___TT我想我太累了。 无论如何,这证实了它。 – Klaim 2011-05-13 20:24:45

相关问题