// REQUIRED_ARGS: -inline -O | |
// Test operator overloading | |
extern (C) int printf(const(char*) fmt, ...); | |
struct Tuple6798(T...) | |
{ | |
T field; | |
alias field this; | |
bool opEquals(Tuple6798 rxx) | |
{ | |
foreach (i, _; T) | |
{ | |
if (!__equals(this[i], rxx[i])) | |
assert(0); | |
//return false; | |
} | |
return true; | |
} | |
} | |
auto tuple(T...)(T args) | |
{ | |
return Tuple6798!T(args); | |
} | |
int zzzz() | |
{ | |
if (!__equals("mno", "mno")) | |
assert(0); | |
assert(tuple("abcd", "x") == tuple("abcd", "x")); | |
return 0; | |
} | |
int main() | |
{ | |
zzzz(); | |
printf("Success\n"); | |
return 0; | |
} |