我想迭代不同類型的數組的元組,調用每個元素的函數。我目前的實現是這樣的:迭代數組的元組
// Some T... is defined up here.
// ArrayTuple!(T) is a TypeTuple of arrays of each type in T.
ArrayTuple!(T) data;
void iterate(alias func, uint n = 0)()
{
static if(n < T.length)
{
foreach(elem; data[n])
func(elem);
iterate!(func, n + 1)();
}
}
,並用作這樣的:
void foo(T)(T elem)
{
...
}
iterate!(foo)();
的偉大工程的大部分,但委託模板不能過去了func
。任何有關使用堆棧指針支持模板函數的實現的建議?
不是D程序員,不確定,也許[this](http://d-programming-language.org/phobos/std_range.html#zip)將幫助 –