Hi All,

I've some old C code which I'm porting to D. It's a learning exercise so I don't want to just wrap the C lib.

I have an array of void* and an array of callbacks that take void* pointers for user data.

I'm wondering what is a good way to port this into D and avoid the void*. My C++ version uses std::function<> for the callbacks and functors. I'm using std::vector<boost::any> For the array of void*.

Maybe it's not the best approach but it's my best efforts. For the D port I'd like to improve on the C++ approach and I'd love to know a better way to do it.

* Could I replace the boost::any with an array of Variant from std.variant?

* Can I assign a struct with opCall() to a function pointer, similar to how std::function<> can take a struct with an operator().

* Should I forget functors and use a callback that takes a std.variant (or whatever the boost::any like thing in D is) instead of void*?

* What would be the best approach do you think to replace use of void* like this.

Thanks,
Stewart

Reply via email to