Comparing Two Type Tuples

Robert Clipsham robert at octarineparrot.com
Sun Apr 4 16:19:54 PDT 2010


On 04/04/10 22:05, Daniel Ribeiro Maciel wrote:
> Heya ppl!
>
> I was wondering how could I write a function that takes two Type
> Tuples as arguments and returns true if they are match.
>
> Could anyone help me with this?
>
> Thanks!

Based on Justin's code, I came up with this to remove the need to pass 
the length of the TypeTuple:

----
import std.typetuple;

alias TypeTuple!(int, double, char[]) tupleA;
alias TypeTuple!(int, double, char[]) tupleB;
alias TypeTuple!(int, double, char*) tupleC;

// Method 1: write an is() each time
pragma(msg, (is(tupleA == tupleB)).stringof);
pragma(msg, (is(tupleA == tupleC)).stringof);

template compare(string t1, string t2)
{
         enum compare = mixin("is("~t1~"=="~t2~")");
}

// Method 2: Use the above template and pass strings
pragma( msg, compare!("tupleA", "tupleB") );
pragma( msg, compare!("tupleA", "tupleC") );
----


More information about the Digitalmars-d-learn mailing list