जब प्रश्न (this answer के आधार पर) के लिए एक उत्तर शोध मैं निम्नलिखित करने की कोशिश की:मैं टेम्पलेट पैरामीटर से मित्रता क्यों नहीं कर सकता?
template <class T>
class friendly {
friend class T;
};
friendly<string> howdy;
यह निम्न त्रुटि के साथ संकलित करने के लिए विफल रहता है:
error: template parameter "T" may not be used in an elaborated type specifier friend class T;
मैं क्या से समझ सकता हूँ से मेरा अच्छा मित्र Google ऐसा इसलिए है कि मैं गलती से friendly<int>
को तुरंत चालू करने की कोशिश नहीं करूंगा लेकिन टेम्पलेट को संकलित करते समय यह त्रुटि क्यों होनी चाहिए? टेम्पलेट को अमान्य प्रकार (जैसे मैंने लिखा था int f() { return T::foo(); }
)
मित्रों और प्रभाव पैरामीटर कैसे बनाएं। – TheTXI
यहां एक संबंधित प्रश्न है: http://stackoverflow.com/questions/392120/why-cant-i-declare-a-friend-through-a-typedef –