On Thursday, 9 January 2025 at 22:01:59 UTC, WhatMeWorry wrote:
produces:
n = Node(Location(0, 0), 33)
when I expected
n = Node(Location(1, 2), 33)
This is a simple typo (it shouldn't be 1 letter) but the code
should be made smarter thanks to the capabilities of D. No more
fear of writing like C and getting lost like C++. For example:
```d
struct Location
{
int x, y;
auto opBinary(string op = "*")(uint m)
{
x *= m;
y *= m;
return this;
}
}
import std.stdio;
void main()
{
auto loca = Location(1, 2);
auto node = Node(loca, 33);
node.writefln!"n = %s";
}
struct Node
{
uint multiplier;
Location location;
this(Location location, uint multiplier)
{
this.location = location * multiplier;
this.multiplier = multiplier;
}
}
```
SDB@79