की Typename लुकअप मुझे हाल ही में एक छात्र द्वारा एक संकलन मुद्दे के बारे में पूछा गया था। जवाब काफी सरल था लेकिन अभी मैं कारण के बारे में संघर्ष कर रहा हूं। एक साधारण उदाहरण:रिटर्न पैरामीटर
#include <iostream>
#include <vector>
struct MyStruct
{
typedef std::vector<int> MyIntVector;
MyIntVector CopyVector(MyIntVector const& vector);
};
MyStruct::MyIntVector MyStruct::CopyVector(MyIntVector const& vector)
^^^^^^^^
{
MyIntVector vec;
return vec;
}
int main(int /*argc*/, char** /*argv*/)
{
MyStruct st;
}
C++ कोड वापसी पैरामीटर है पूरी तरह से योग्य होने के लिए वैध होने के लिए। उत्तर के लिए और संकलक/छात्र को खुश करने के लिए बहुत कुछ।
लेकिन वापसी मूल्य को कक्षा के साथ योग्यता और फ़ंक्शन के पैरामीटर के योग्य क्यों नहीं है?
मैंने हमेशा यह किया और मुझे पता है कि इसे एडीएल लुकअप के साथ करना है, लेकिन अब मुझसे पूछा गया कि मैं एक बेहतर उत्तर खोज रहा हूं।
क्या कोई मुझे उस भाषण या संकेत का संदर्भ दे सकता है जहां मुझे कुछ और जानकारी मिल सकती है?
और कई समारोह * घोषणाओं * हो सकता है जैसे आप अपने उदाहरण में दिखा। मित्र घोषणाओं के लिए, यह वास्तव में मान्य भी है, अर्थात्, मुझे लगता है: 'संरचना सी {दोस्त शून्य ए :: एफ(), बी :: एफ(); }; '। –