जहां तक मुझे पता है, जब दो उम्मीदवारों के बीच चयन करने के लिए आ रहा है तो संकलक उस व्यक्ति को पसंद करेगा जो उसका सबसे कमजोर मैच मजबूत है। उदाहरण के लिए अगर मेरे पास है:ओवरलोडिंग रिज़ॉल्यूशन
void boo(int i, char c);
void boo(double d, int i);
निम्न कोड के लिए
: क्योंकि इसकी सबसे कमजोर मैच पदोन्नति है, जबकि पहले एक के मानक प्रकार रूपांतरण है
float f = 1.0;
char c = 'c';
boo(f,c);
दूसरा boo
पसंद किया जाना चाहिए।
लेकिन जब मैंने उसे (जीसीसी उपयोग करते हुए) को संकलित करने का प्रयास करें, मैं:
error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second.
कोई भी विचार?
मैं एक विचार है। उस त्रुटि संदेश को बार-बार पढ़ें जब तक कि यह स्पष्ट न हो कि C++ मानक कहता है कि यह संदिग्ध है। त्रुटि संदेश लिखने वाले डेवलपर के लिए –
+1। – JNL