writeln the struct from the alis this Example from the home page

Martin Tschierschke mt at smartdolphin.de
Thu Nov 18 13:51:42 UTC 2021


Hello, if you take the example from the home page, with the 
additional last line:

```d
struct Point
{
     private double[2] p;
     // Forward all undefined symbols to p
     alias p this;
     double dot(Point rhs)
     {
         return p[0] * rhs.p[0] + p[1] * rhs.p[1];
     }
}
void main()
{
     import std.stdio : writeln;
     // Point behaves like a `double[2]` ...
     Point p1, p2; p1 = [2, 1], p2 = [1, 1];
     assert(p1[$ - 1] == 1);
     // ... but with extended functionality
     writeln("p1 dot p2 = ", p1.dot(p2));
     // additional line:
     writeln(p1); // is not possible !
}
```
/usr/include/dmd/phobos/std/format.d(3193): Error: no [] operator 
overload for type Point
..
...

How to define, that for Point the same formatting should be used 
as for double[2] ?



More information about the Digitalmars-d-learn mailing list