मेरे कंपाइलर जीसीसी-4.6 के अनुसार नीचे दिए गए उदाहरण में func को कॉल अस्पष्ट है।संदिग्ध कॉल (char * से lambda बनाम std :: string) से रूपांतरण
void func(const std::string &str) {
}
void func(std::function<std::string()> f) {
}
void test() {
func("Hello");
}
क्या यह कहने में संकलक सही है? अगर मैं पहले अधिभार को हटा देता हूं तो यह कोड संकलित नहीं होगा क्योंकि इसमें शामिल टेम्पलेट्स को तुरंत चालू करने में विफल रहेगा।
क्या किसी भी दो कार्यों में से किसी एक का नाम बदलने या स्पष्ट रूप से std :: string में परिवर्तित करके इसके हल करने के लिए वैसे भी है?
हास्यास्पद लगता है! –
@ टोमालक: यह है। – Puppy
मुझे यह भी यकीन नहीं है कि कार्यान्वयन को ऐसा करने की अनुमति है या नहीं। मुझे खुशी होगी अगर कोई स्पेस संदर्भ पा सकता है या आगे समझा सकता है। –