On Wednesday, 18 January 2017 at 22:39:02 UTC, Ali Çehreli wrote:
On 01/18/2017 02:02 PM, Jordan Wilson wrote:
[...]
Yes, can be better with something similar to the following:
struct Foo {
string bar;
}
string value(U : Foo)(U u) {
return u.bar;
}
string value(U : string)(U u) {
return u;
}
auto sameGroup(T,S) (T a, S b) {
static assert (is(T == string) || is(T == Foo));
static assert (is(S == string) || is(S == Foo));
import std.algorithm;
return equal (value(a), value(b));
}
void main() {
assert(sameGroup("a", "b") == false);
assert(sameGroup("a", Foo("a")) == true);
assert(sameGroup(Foo("x"), "b") == false);
assert(sameGroup(Foo("z"), Foo("z")) == true);
}
Ali
Nice, yes looks better thanks.
Jordan