http://d.puremagic.com/issues/show_bug.cgi?id=4239
--- Comment #2 from Simen Kjaeraas <[email protected]> 2010-05-26 15:20:55 PDT --- (In reply to comment #1) > This seems to work fine: > > struct X(T...) { } > > static assert(is(X!(int, int) == X!(int, int))); > static assert(is(X!(int, "foo") == X!(int, "foo"))); > static assert(!is(X!(int, "foo") == X!("foo", int))); Indeed it does. I do however still feel it should be included in Phobos as something more obvious. Simplified version, with newly acquired knowledge: /** Compares tuples that might contain a mixture of types and values. Example: ---- static assert(SameTuple!(int, int).As!(int, int)); static assert(SameTuple!(int, "foo").As!(int, "foo")); static assert(!SameTuple!(int, "foo").As!("foo", int)); ---- */ struct SameTupleImpl(T...) { } template SameTuple(T...) { template As(U...) { enum As = is( SameTupleImpl!T == SameTupleImpl!U ); } } unittest { static assert(SameTuple!(int, int).As!(int, int)); static assert(SameTuple!(float).As!(float)); static assert(SameTuple!("foo").As!("foo")); static assert(!SameTuple!("foo").As!("bar")); static assert(!SameTuple!(int ).As!("bar")); static assert(!SameTuple!(int ).As!(float)); static assert(SameTuple!(int, "foo").As!(int, "foo")); static assert(!SameTuple!(int, "foo").As!("foo", int)); static assert(SameTuple!().As!()); static assert(!SameTuple!(int).As!()); static assert(!SameTuple!().As!(int)); static assert(!SameTuple!("foo").As!()); static assert(!SameTuple!().As!("foo")); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
