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] ?

Reply via email to