C API's often use a opaque struct pointer as a handle. Mapping such a struct to D using a forward declaration, I noticed that UFCS doesn't work:

  struct State;
  ...
  State* s = new_state();
  foo(s);  // ok
  s.foo(); // compile error

Error detail:

  Error: struct State is forward referenced when looking for 'foo'
Error: struct State is forward referenced when looking for 'opDot' Error: struct State is forward referenced when looking for 'opDispatch'

I'm wondering if anything would be harmed by removing this restriction.

As a workaround I can use "struct State {}", but that feels wrong.

Reply via email to