को बढ़ावा देना चाहते हैं :: एक सादा फ़ंक्शन पॉइंटर (समान हस्ताक्षर) की अपेक्षा करने वाली विधि से बाध्य करें।डेमोटे बूस्ट :: एक सादा फ़ंक्शन पॉइंटर
typedef void TriggerProc_type(Variable*,void*);
void InitVariable(TriggerProc_type *proc);
boost::function<void (Variable*, void*)> triggerProc ...
InitVariable(triggerProc);
error C2664: 'InitVariable' : cannot convert parameter 1 from
'boost::function<Signature>' to 'void (__cdecl *)(type *,void *)'
मैं एक बढ़ावा भंडारण से बच सकते हैं :: समारोह और बस सीधे बाध्य functor गुजरती हैं, लेकिन फिर मैं मिल समान त्रुटि:
error C2664: 'blah(void (__cdecl *)(type *,void *))' : cannot convert parameter
1 from 'boost::_bi::bind_t<R,F,L>' to 'void (__cdecl *)(type *,void *)'
'boost :: function pfn = static_cast > (userData); 'बूस्ट :: फंक्शन * का उपयोग करना चाहिए या इसके बजाय संकलन त्रुटि होगी? –
Gohan
@ गोहन हां, वह लेखक का इरादा था। मैं पोस्ट को ठीक कर दूंगा .. – Yann