मैं की तरह एक कंटेनर को लागू कर रहा हूँ:एक प्रकार के लिए कक्षा :: प्रकार, क्या मैं कॉन्स्ट क्लास :: कॉन्स क्लास से टाइप कर सकता हूं?
template<typename T>
class Container
{
public:
using value_type = T;
...
};
वहाँ const Container
से एक const value_type
प्राप्त करने के लिए एक अच्छा तरीका है?
पृष्ठभूमि:
मैं एक नेस्टेड टेम्पलेट वर्ग के माध्यम से इटरेटर प्रकार लागू कर दिया है:
template<typename Container, typename Value>
class iterator_base
{
public:
...
Value& operator*() const;
private:
Container* c;
};
using iterator = iterator_base<Container, value_type>;
using const_iterator = iterator_base<const Container, const value_type>;
जो ठीक काम करता है, लेकिन iterator_base
से पीछे नहीं टेम्पलेट तर्क बेमानी लगता है।