我想使用Boost的any_range
來處理多個異構數據範圍。類型我的數據範圍被稱爲一個融合載體,例如:Boost Fusion/MPL:將類型從序列轉換爲等效的序列any_range's
typedef vector<double, int, char> TypeSequence
鑑於這樣的類型,我想寫一個模板來獲得進一步的類型是這樣的:
vector<AnyRange<double>::value, AnyRange<int>::value, AnyRange<char>::value>
哪裏AnyRange
定義爲:
using namespace boost;
template <typename T>
struct AnyRange
{
typedef typename any_range<typename T, forward_pass_traversal_tag, int, std::ptrdiff_t> value;
};
我試過了,失敗了。這甚至可能與Fusion? MPL?或者也許我正在用any_range
走錯路。
這絕對應該是可能的 - 但是,它看起來更像你想從MPL向量(一個沒有實際數據)轉換成融合表達載體(一個帶數據)。此外,您對「typename」的使用看起來有點不合適...... – ltjax 2011-03-30 08:55:06