मैं कोड के इस टुकड़े भर में आ गए हैं करने के उद्देश्य क्या (मैं सब मैं कुछ याद कर रहा हूँ मामले में विवरण शामिल करने की कोशिश कर रहा हूँ) टी समझ में टेम्पलेट के अंदर कार्य है:टेम्पलेट्स अंदर typename काम
template <typename TYPE = TYPE_with_an_arbitrarily_long_name, ..
मैं इस के प्रभाव को समझने की कोशिश कर रहा है, लेकिन अब तक मैं किसी भी उत्पादन नहीं कर सका। यहाँ कर रहे हैं कुछ सामान मैं कोशिश की है:
#include <iostream>
#include <typeinfo>
using namespace std;
template<typename T>
void foo(T t) {
cout << typeid(t).name() << " ";
}
template<typename T = int>
void bar(T t) {
cout << typeid(t).name() << " ";
}
template<typename T = double>
void baz(T t) {
cout << typeid(t).name() << " ";
}
int main()
{
cout << "\nfoo: ";
foo(3); foo<int>(3); foo<double>(3);
cout << "\nbar: ";
bar(3); bar<int>(3); bar<double>(3);
cout << "\nbaz: ";
baz(3); baz<int>(3); baz<double>(3);
return 0;
}
प्रिंट आउट:
foo: i i d
bar: i i d
baz: i i d
तो मेरे सवाल है:
template
अंदर काम के प्रभाव क्या है?- ऊपर के उदाहरण में इसका उपयोग करने का उद्देश्य क्या है?
- कोई तीसरा सवाल ही नहीं है।
.. किसी भी मदद की सराहना की
संपादित निकला कार्यों C++ 11
नाइटपिकिंग: 'std :: string' में कोई टेम्पलेट पैरामीटर नहीं है, क्योंकि यह' typedef' है ('std :: basic_string') के लिए; आप किस बारे में बात कर रहे हैं शायद 'std :: basic_string' है, जिसमें लक्षण और आवंटक पैरामीटर के लिए डिफ़ॉल्ट मान (वर्ण प्रकार के आधार पर) हैं। –
+1 मुझे एहसास करने के लिए +1 मैं – none