के सदस्य को परिभाषित नहीं कर सकता मैं कस्टम आलसी स्ट्रिंग क्लास लिख रहा हूं।आश्रित टाइपपीफ
template <typename charT, typename traits = std::char_traits<charT>>
class lazy_basic_string
{
class char_proxy
{
char_proxy& operator=(charT ch);
};
char_proxy operator[](size_type i);
}
तब मैं इन विधियों को कक्षा घोषणा के बाहर परिभाषित करना चाहता हूं।
template <typename charT, typename traits>
using char_proxy = typename lazy_basic_string<charT, traits>::char_proxy;
template <typename charT, typename traits>
char_proxy<charT, traits>& char_proxy<charT, traits>::operator=(charT ch)
{
...
}
लेकिन मैं संकलन त्रुटि मिली:
cannot define member of dependent typedef char_proxy
तो मैं समझ नहीं है कि समस्या क्या यहाँ है। क्यों संकलक lazy_basic_string :: char_proxy के बजाय शॉर्टकट char_proxy का उपयोग नहीं कर सकता है?
मैं g ++ 4.7 का उपयोग कर रहा हूं। ऐसा लगता है कि क्लास सदस्यों की परिभाषा टेम्पलेट उपनाम द्वारा समर्थित नहीं है, इसलिए इस सुविधा से बचने के लिए बेहतर होगा। – eucpp