On Monday, 15 June 2015 at 03:53:35 UTC, Yuxuan Shui wrote:
Is it possible to apply some operation on every member of a TypeTuple, then get the result back?

Say I have a TypeTuple of array types, and I want a TypeTuple of their element types, how could I do that?

You can do that with std.typetuple.staticMap, example:
---
import std.stdio;
import std.typetuple;

template ElemType(T)
{
    alias ElemType = typeof(T.init[0]);
}

void main(string[] args)
{
    alias T1 = TypeTuple!(int[],ubyte[]);
    alias T2 = staticMap!(ElemType, T1);
    writeln(typeof(T1.init).stringof);
    writeln(typeof(T2.init).stringof);
}
---

outputs:

---
(int[], ubyte[])
(int, ubyte)
---

It's like the higher-order function map() but for type list:

http://dlang.org/phobos/std_typetuple.html#.staticMap


Reply via email to