निर्भर दायरा क्या है और निम्न त्रुटि के संदर्भ में टाइपनाम का अर्थ क्या है?आश्रित टेम्पलेट्स पर निर्भर स्कोप
$ make
g++ -std=gnu++0x main.cpp
main.cpp:18:10: error: need 'typename' before 'ptrModel<std::vector<Data> >::Type' because 'ptrModel<std::vector<Data> >' is a dependent scope
make: *** [all] Error 1
/*
* main.cpp
*/
#include <vector>
#include <memory>
template<typename T>
struct ptrModel
{
typedef std::unique_ptr<T> Type;
};
template<typename Data>
struct ptrType
{
typedef ptrModel< std::vector<Data> >::Type Type;
};
int main()
{
return 0;
}
ठीक है, लेकिन क्या यह सच नहीं है कि यह एक सदस्य चर टाइपिफ़ को समझ में नहीं आता है? – user383352
हां, लेकिन यह आवश्यक नहीं है कि संकलक द्वारा टेम्पलेट को कैसे पार्स किया जाता है, इसके बारे में कुछ विवरणों के कारण मदद नहीं करता है। इस प्रश्न के स्वीकृत उत्तर को देखें: http://stackoverflow.com/questions/642229/why-do-i-need-to-use-typedef-typename-in-g-but-not-vs –
मुझे यह भी मिला [ यह उत्तर] (http://stackoverflow.com/a/6571836/24874) पहली बार इस त्रुटि और अवधारणा में आने पर बहुत उपयोगी होने के लिए। –