Making enum join variadic
Artur Skawina via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu May 1 17:38:08 PDT 2014
On 05/02/14 00:24, "Nordlöw" via Digitalmars-d-learn wrote:
> How can I make `join` variadic (by filling in njoin) in the following code?
import std.array, std.range, std.algorithm;
import std.stdio;
template Njoin(ES...) {
mixin({
string r = "enum Njoin { ";
foreach (E; ES)
r ~= [__traits(allMembers, E), " "].join(",");
return r ~ "}";
}());
}
void main(string[] args)
{
enum E1 { A, B, C }
enum E2 { E, F, G }
alias E12 = Njoin!(E1, E2);
E12 e12;
writeln(e12.min, ",", e12.max);
}
artur
More information about the Digitalmars-d-learn
mailing list