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:

```d
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


Reply via email to