digitalmars.D.learn - Should opIndex take precedence over pointer indexing?
- claptrap (11/11) Jun 12 2020 struct Foo
- Jonathan M Davis (5/16) Jun 12 2020 Yes, it's expected behavior. . is the only operator which implicitly
struct Foo
{
float* what;
float opIndex(size_t idx) { return what[idx]; }
}
Foo* foo;
float x = foo[idx]; // ***
*** <source>(68): Error: cannot implicitly convert expression
`foo[cast(ulong)idx]` of type `Foo` to `float`
IE, pointer indexing of 'foo' takes precedence over the opIndex
of foo. Is this expected?
Jun 12 2020
On Friday, June 12, 2020 5:12:35 PM MDT claptrap via Digitalmars-d-learn
wrote:
struct Foo
{
float* what;
float opIndex(size_t idx) { return what[idx]; }
}
Foo* foo;
float x = foo[idx]; // ***
*** <source>(68): Error: cannot implicitly convert expression
`foo[cast(ulong)idx]` of type `Foo` to `float`
IE, pointer indexing of 'foo' takes precedence over the opIndex
of foo. Is this expected?
Yes, it's expected behavior. . is the only operator which implicitly
dereferences a pointer.
- Jonathan M Davis
Jun 12 2020








Jonathan M Davis <newsgroup.d jmdavisprog.com>