I have a class or struct (have tried both; same error):

module track_changes;

import std.array;
import std.signals;

class TrackChanges(T)
{
private:
   T[] _stack;
   int _current = 0;
public:
   mixin Signal!(T);

   TrackChanges opAssign(TrackChanges x) {
      this = x();
      return this;
   }
   T opAssign(T x) {
      if (x != this.opCall()) {
         insertInPlace(_stack, ++_current, x);
      }
      return x;
   }
   T opCall() {
      return _stack[_current];
   }
}

I've tried these two approaches (tried both; same error):

class MyClass : TrackChanges!MyClass {

}

class MyClass
{
    int b;
    TrackChanges!MyClass changes;
}

Both result in an access violation within the `std.signals` library upon calling connect in my main() program.


Reply via email to