
On 9/14/05, Bruno MartÃnez
On Mon, 12 Sep 2005 23:31:52 -0300, Bruno MartÃnez
wrote: Hi.
When using pointers to functions with bind, the particular function doesn't play a part in the return value's type of bind. That is
void func1(); void func2();
typeid(boost::bind(&func1)) == typeid(boost::bind(&func1)) // this is true
I've made some progress. What I have now looks like:
template
struct nontypeadapt; template
struct nontypeadapt { typedef Ret result_type; Ret operator() () { return func(); } }; then
typeid(boost::bind(nontypeadapt
())) != typeid(boost::bind(nontypeadapt ())) However, the signature has to be given at the call site, it's repetitive to define all specializations of nontypeadapt, and it brings more forwarding problems of it's own. Any ideas?
I think you can only pass functions with external linkage as parameters to templates, which I think it makes it unusable...
Bruno
-- Felipe Magno de Almeida Developer from synergy and Computer Science student from State University of Campinas(UNICAMP). Unicamp: http://www.ic.unicamp.br Synergy: http://www.synergy.com.br "There is no dark side of the moon really. Matter of fact it's all dark."