में जेनेरिक कंटेनर मैं एक सामान्य कंटेनर प्रकार बनाने का प्रयास कर रहा हूं ताकि एक सामान्य इंटरफ़ेस प्रदान किया जा सके, साथ ही उन आंतरिक कंटेनरों को छुपाएं जिन्हें मैं बदल रहा हूं क्योंकि वे परिवर्तन के अधीन हैं।सी ++
असल में मेरे पास प्लगइन हैं जो आइटमों का संग्रह वापस करते हैं और मैं नहीं चाहता कि प्लगइन्स मेरे कोड का उपयोग कर रहे कंटेनर के प्रकार से अवगत रहें।
क्या कोई मुझे बेहतर दिशा में इंगित कर सकता है तो नीचे उदाहरण कोड?
template<class C, typename I>
class Container
{
public:
//...
void push(const I& item)
{
if(typeid(C) == typeid(std::priority_queue<I>))
{
std::priority_queue<I>* container = (std::priority_queue<I>*)&_container;
container->push(item);
}
if(typeid(C) == typeid(std::list<I>))
{
std::list<I>* container = (std::list<I>*)&_container;
container->push_back(item);
}
else
{
//error!
}
};
private:
C _container;
//...
}
धन्यवाद
मैं कर सकता हूं। ऐसा मत करो। अपना ऐप डिज़ाइन करने पर अपना समय व्यतीत करें ताकि यह स्थिर रूप से टाइप किए गए कंटेनर का उपयोग कर सके। – ybungalobill
मैं आपको एक बेहतर दिशा में इंगित कर सकता हूं, सुनिश्चित करें: ** ऐसा करने का प्रयास न करें **। गंभीरता से। यह आपको कुछ भी हासिल नहीं करेगा। अनुभव की आवाज़ यहाँ बोल रही है। –
यहां डाउनवोट क्यों है? यह एक बिल्कुल वैध सवाल है। भले ही जवाब "इस तरह से मत करो", यह अभी भी एक वैध सवाल था। – Tim