problem with alias this and Tuple
Johann Lermer
johann.lermer at elvin.eu
Tue Oct 12 09:30:57 UTC 2021
Hi all,
I have a problem with Tuples and struct templates that contain an
alias this:
```d
import std;
struct Element(T)
{
T payload;
alias payload this;
this (T p)
{
payload = p;
}
}
class Item {}
void main ()
{
auto e = Element!Item (new Item());
auto t = tuple(e);
}
```
dmd generates a warning: **Warning: struct Element has method
toHash, however it cannot be called with const(Element!(Item))
this.
Element.toHash defined here:
/usr/local/include/d/druntime/import/object.d(83)**
The culprit seems to be the 'alias payload this'. When I remove
that line, the code works. However, in my code, I need that
alias. Any ideas, what's wrong or what I could do? Thanks.
More information about the Digitalmars-d-learn
mailing list