On 09/06/2013 01:14 PM, Jonathan Crapuchettes wrote:

> Can someone help me understand how to correct this error?
>
> Error: inout method ...ValidSparseDataStore.opIndex is not callable using
> a const object

That error is about opIndex but we don't see any code that makes that call.

> The specific method is defined as:
>
> struct ValidSparseDataStore
> {
>      inout(DataT*) opIndex(const Address addr) inout
>      {
>          if (auto node = findNode(addr))
>              return cast(inout)&(node.data);
>
>          return null;
>      }
>
>      private ValidSparseNode* findNode(const Address ids) const
>      {
>          ...
>      }
> }
>
> Thank you,
> JC

I can reproduce it with this code:

struct S
{
    void foo(int) inout
    {}
}

void main()
{
    const s = S();
    s.foo(42);     // <-- works
    s.foo();       // <-- ERROR
}

Error: inout method deneme.S.foo is not callable using a const object

I can't know whether this matches your case but the compiler should error about not finding a matching foo() overload instead of bringing the inout into the discussion.

Ali

Reply via email to