2009/6/3 OvermindDL1 <overminddl1@gmail.com>
Actually, using Boost.Bind will use a lot more memory overall. Would
it not be better to create a static function somewhere, something
like:
class SceneManager
{
...
static deallocSM(SceneManage *ptr)
{
ptr->clearScene();
}
...
};
And create as:
SceneManager *s=fromSomewhere();
boost::shared_ptr<SceneManager> p(s, &SceneManager::deallocSM);
Doing this means it only keeps a pointer to the function call, instead
of through a bind instantiation, meaning this will execute ever so
tiny slightly faster, as well as take less space? It has been a while
since I created a new handler like that, but I 'think' the function
takes a pointer to the embedded pointer type, check the smart_ptr docs
for details I guess.
Modern compiler's might surprise you. Always measure performance or look at generated code before resorting to manual optimizations.
Roman Perepelitsa.