[Issue 12593] New: [REG2.065] AA cannot have struct as key
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri Apr 18 04:22:06 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=12593
Issue ID: 12593
Summary: [REG2.065] AA cannot have struct as key
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: regression
Priority: P1
Component: DMD
Assignee: nobody at puremagic.com
Reporter: yazan.dabain at gmail.com
Code:
int[R] aa;
struct R {}
void main() {}
Compiler output:
test.d(1): Error: associative array key type R does not have 'const int
opCmp(ref const R)' member function
which is understandable. However, let's add the missing member function.
Code:
int[R] aa;
struct R {
const int opCmp(ref const R) { return 0; }
}
void main() {}
Compiler output:
test.d(1): Error: associative array key type R does not have 'const int
opCmp(ref const R)' member function
We still have the same error although the member function exists! I tried
adding opEquals and toHash functions too, but I get the same output.
Now let's try the following:
Code:
import std.array; // can be other modules also (e.g. range, algorithm, string,
format) but not all modules enable this code to compile (e.g. typetuple)
int[R] aa;
struct R {}
void main() {}
Now with having some arbitrary import, the code compiles! Although opCmp is
missing.
--
More information about the Digitalmars-d-bugs
mailing list