ठीक इतने heres कार्यक्रम और बिल्कुल सहीयदि मैं अपना फ़ंक्शन 'स्वैप' नाम देता हूं तो मुझे टेम्पलेट त्रुटि क्यों मिलती है, लेकिन 'स्वैप' ठीक है?
#include <iostream>
using namespace std;
template <typename T>
void Swap(T &a , T &b);
int main(){
int i = 10;
int j = 20;
cout<<"i, j = " << i <<" , " <<j<<endl;
Swap(i,j);
cout<<"i, j = " << i <<" , " <<j<<endl;
}
template <typename T>
void Swap(T &a , T &b){
T temp;
temp = a ;
a = b;
b= temp;
}
काम करता है लेकिन जब मैं स्वैपस्वैप करने के लिए से समारोह का नाम बदलने यह
error: call of overloaded 'swap(int&, int&)' is ambiguous| note: candidates are: void swap(T&, T&) [with T = int]| ||=== Build finished: 1 errors, 0 warnings ===|
कह एक त्रुटि उत्पन्न करता है क्या हुआ यह एक पूंजी पत्र से शुरू करने के लिए टेम्पलेट का उपयोग कर कार्यों को शुरू करने का एक नियम है?
कौन/कहां सुझाव दिया गया है कि टेम्पलेट किए गए फ़ंक्शन नामों को पूंजी पत्र से शुरू करना चाहिए? मैं पूछ रहा हूं क्योंकि मुझे नहीं पता, क्योंकि मैं असहमत नहीं हूं। हालांकि, उदाहरण के लिए मानक पुस्तकालय low_case नामकरण सम्मेलन का भी उपयोग करता है, इसलिए एक त्वरित विचार पर मैं ऐसी नामकरण योजना के लिए एक महान लाभ के साथ नहीं आ सकता। :) – zxcdw