मैं सी ++ नाम-डिमैंगलिंग कोड के लिए कुछ परीक्षण केस लिख रहा हूं, और जब मैं इसे संकलित करने का प्रयास करता हूं तो मुझे एक अजीब त्रुटि मिलती है: (निम्नलिखित रोगजनक रूप से खराब सी ++ कोड है जिसे मैं अभ्यास में कभी भी उपयोग नहीं करता)।सी ++ टेम्पलेट प्रश्न
"typetest.cpp", line 165: error: nontype "Oog<T, U>::Huh<F>::Wham [with F=T]"
is not a template
कोई भी विचार मैं कैसे ठीक कर सकते हैं: इस प्रकार
template<class U, class V>
class TStruct
{
U u;
V v;
public:
void setU(const U& newu) {u = newu; }
};
template<class T, class U>
class Oog
{
T t;
U u;
public:
Oog(const T& _t, const U& _u) : t(_t), u(_u) {}
void doit(TStruct<T,U> ts1, TStruct<U,T> ts2, U u1, T t1) {}
template<class F>
class Huh
{
F f;
public:
template<class V>
class Wham
{
V v;
public:
Wham(const V& _v) : v(_v) {}
void joy(TStruct<T,V> ts1, U u, F f) {}
};
};
int chakka(const Huh<T>::Wham<U>& wu, T t) {} // error here
};
त्रुटि है?
धन्यवाद! मुझे 'टाइपनाम' के बारे में पता था, लेकिन मुझे नहीं पता था कि आपको उस तरह से 'टेम्पलेट' कीवर्ड का उपयोग करना था। –
+1: एक और अच्छा जवाब! यह इस सप्ताह कम से कम दो बार है! : डी –
@ टोमालक, आप 'अच्छा उत्तर' टिप्पणी देते हैं और फिर किसी के ऑब्जेक्ट के बाद आप अपना वोट/टिप्पणी वापस लेते हैं !! – iammilind