On Wednesday, 6 November 2024 at 16:38:40 UTC, Salih Dincer wrote:
>In response to Andy and Matheus, I think implementing your own type might be a solution:
Oh, am I too hasty? There was already an s in the test environment, so I thought 2 overloads were unnecessary. I don't have a programmer or anything, my brother :)
In fact, it would be nice if there was an option to correct the threads we wrote on our forum. At least for a certain period of time. Here is the latest code that works:
void main()
{
Short foo = { 21 };
foo *= -1;
foo = foo * -2;
assert(foo.s == 42);
}
struct Short
{
short s;
auto opBinary(string op: "*")(int rhs)
{
auto result = s * rhs;
return Short(cast(short)result);
}
void opOpAssign(string op: "*")(int rhs)
{
s *= rhs;
}
}
SDB@79