It does skim over it a bit, but it's there in the examples. Like I said I did it wrong the first time too, but it does make sense as you say.
However it doesn't work in VC6 if I change my member function to have 'void' return and I change my boost::function signature to boost::function3
bf; . Now I get: error C2562: '()' : 'void' function returning a value etc. What a PITA !
Hmmm... I tried your example code (now I have access to my dev machine) and it worked fine for me with a void function. You didn't forget to remove
"Phil Nash"
return statement (probably returning "a") from your method did you? It is true that VC++ 6 doesn't have void returns, but those clever chaps who wrote boost::function worked around it so it works as it should :-) If you definitely did remove your return statement then post the full code again here for further inspection.
I tried it with Boost 1.28 and it worked but failed in Boost 1.26. Evidently it was fixed between releases. Thanks for your help.