के बाद एक कक्षा या नामस्थान होना चाहिए, मैं C++ में टेम्पलेट फ़ंक्शन पॉइंटर घोषित करने का प्रयास कर रहा हूं।टेम्पलेट क्लास के अंदर पॉइंटर फ़ंक्शन करने के लिए सदस्य त्रुटि देता है: '::'
template <class T>
class MyClass
{
public:
typedef const unsigned char* (T::*MyTemplatedEvent)(unsigned long &myParameter);
};
लेकिन किसी कारण मैं इस त्रुटि प्राप्त हो रही के लिए:
'T': must be a class or namespace when followed by '::'
किसी बता सकते हैं मैं गलत क्या कर रहा हूँ?
संकलक को पता होना चाहिए कि टी एक वर्ग है। यह MyClass घोषणा से ऊपर तो ...
मुझे लगता है कि आपको 'टी ::' से पहले 'टाइपनाम' की आवश्यकता है। मुझे जाँचने दो। – chris
@ क्रिस: इस मामले में नहीं। – Puppy
इसके अलावा, सदस्य फ़ंक्शन पॉइंटर्स खराब हैं। बस 'std :: function' का उपयोग करें और आपको समस्या नहीं होगी। – Puppy