
"OvermindDL1" <overminddl1@gmail.com> wrote in message news:3f49a9f41002262044hd62d028x36c870906a19c058@mail.gmail.com...
Actually, the only reason they outperform boost::function is because boost::function adds in extra assembly code for a comparison check (to null, if true it throws an exception).
Actually there are more issues, that one is just one of the more serious ones...(I've gone about all of them in much greater detail previously...but not to repeat myself...)
If that is removed (perhaps by a policy, I certainly know that most of my function would never be empty, would even be nice if the function defaulted to an empty function if empty instead), then boost::function becomes even faster.
As Steven pointed out this can be done w/o policies, with a nul-object (that is the way I did it)...But I added a policy to specify the nul-object, that is to choose what it actually does (throw, nop, ....)...
I have actually started to take a liking to Boost.Variant for function callbacks (if I know what they can be), it inlines it and the function pointer call disappears. :)
lol ... 'dirty'/twisted, me likes ;-) -- "What Huxley teaches is that in the age of advanced technology, spiritual devastation is more likely to come from an enemy with a smiling face than from one whose countenance exudes suspicion and hate." Neil Postman