我想迭代不同类型的数组的元组,调用每个元素的函数。我目前的实现是这样的:迭代数组的元组
// 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)将帮助 –