के बीच भ्रम सावधान रहें: यह जीसीसी 4.1.2 है। हम एक मालिकाना एम्बेडेड मंच पर हैं। हम एक नए कंपाइलर को अपडेट नहीं कर सकते हैं। तो सी ++ 03 + टीआर 1 है।std :: [tr1 ::] ref और boost :: ref
हम कहीं न कहीं इस तरह एक समारोह है:
template<typename T>
void foo(const boost::any& x)
{
bar(boost::any_cast<T>(x));
}
जो फिर बाद में एक बाँध अभिव्यक्ति में प्रयोग किया जाता है:
error: call of overloaded 'ref(const boost::any&)' is ambiguous
note: candidates are: std::tr1::reference_wrapper<_Tp> std::tr1::ref(_Tp&) [with _Tp = const boost::any]
note: const boost::reference_wrapper boost::ref(T&) [with T = const boost::any]
std::tr1::bind(&foo<T>, _1);
यह निम्न त्रुटि उत्पन्न करता है
मुझे समझ में आता है कि यह मैं हमें को मारने के लिए Koenig लुकअप। हालांकि, मुझे इस समस्या को दूर करने के बारे में विचारों की कमी है।
कोई भी वहां से बाहर है?
क्या आपके कोड में 'ref' की कमी जानबूझकर है? – Simple
@ सिंपल: आप 'रेफरी' की कमी कहां देखते हैं? – sbi
आपके दो कोड नमूने में 'ref' के लिए कॉल नहीं है, जबकि त्रुटि होती है। मैं पूछ रहा था कि क्या जानबूझकर है या नहीं। एडीएल के आपके उल्लेख से मुझे यकीन नहीं था। – Simple