5
मैं सी ++ टेम्पलेट के साथ एक अजीब समस्या है और मुझे समझ नहीं आता क्यों निम्नलिखित कोड काम नहीं कर रहा:नेस्टेड टेम्पलेट्स
#include <iostream>
template <typename A, typename B>
class TypePair {
public:
typedef A First;
typedef B Second;
};
template <typename P>
class Foo {
public:
Foo(P::First f, P::Second) {
std::cout
<< "first = " << f << std::endl
<< "second = " << s << std::endl;
}
};
int main(int argc, char **argv) {
Foo<TypePair<int, double> > foo(42, 23.0);
return 0;
}
कोड निम्न त्रुटियों का उत्पादन:
$ g++ templates.cpp -o templates
templates.cpp:14: error: expected ‘)’ before ‘f’
templates.cpp: In function ‘int main(int, char**)’:
templates.cpp:23: error: no matching function for call to ‘Foo<TypePair<int, double> >::Foo(int, double)’
templates.cpp:12: note: candidates are: Foo<TypePair<int, double> >::Foo()
templates.cpp:12: note: Foo<TypePair<int, double> >::Foo(const Foo<TypePair<int, double> >&)
मेरे लिए यह कोड पूरी तरह से ठीक दिखता है, लेकिन जी ++ स्पष्ट रूप से अपनी राय है ^^ कोई विचार?
सेबस्टियन
आपके त्वरित उत्तर के लिए बहुत बहुत धन्यवाद! यह पूरी तरह से मेरी समस्या हल हो गया। एक अच्छा लिंक के लिए – Sebastian
+1, धन्यवाद। –