2011-05-13 62 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

相關問題