
Well the initial error appears to just be instancing problem. Might put a static bool set to false on init, test it after the fact, and if false set it to true and also set the struct above it, that incurs obvious overhead, and as stated, there might be more problems as well.
Yes, that was the first thing that ocurred to me; the problem is, how the heck do I initialize vtable_type? I don't know what's really inside it, and I've taken a beating trying to follow up it's declarations, it's quite nasty. static bool _vtable_init = false; static vtable_type stored_vtable; if (!_vtable_init) { stored_vtable // ????????? What now? _vtable_init = true; }
Obviously need to customize them for each type of callback you will need, and there are *much* better ways to do this, more reusable, and faster, but that requires decent template support (unsure how well that compiler works), and you pretty much end up remaking boost function/bind anyway.
It has half-decent (hmmn) template support, I use it infrequently but I do use it, and boost::shared_ptr and the likes frequently, they work fine. But adding more code to maintain, specially templated, is the last thing I want to do now, so I'll stick with the static function pointers if I can't get function_template.hpp to compile. Anyway, thanks *a lot* for the time you've taken to answer me so far.