मैंने 'आधुनिक सी ++ डिज़ाइन' में टाइपलिस्ट के बारे में पढ़ा है और मैं इसे प्रकार के लिए किसी प्रकार के संघ के रूप में समझता हूं। एक टाइपलिस्ट में भिन्न, गैर-संबंधित प्रकार डालने से, कोई भी विरासत के बिना, एक से अधिक प्रकार का प्रतिनिधित्व करने के लिए इसका उपयोग कर सकता है। मैंने आदिम प्रकारों के साथ कुछ सरल कार्यों में टाइपलिस्टिस्ट का परीक्षण किया, लेकिन मैं उनमें से कोई भी काम करने के लिए नहीं मिला।टाइपलिस्टिस्ट का उपयोग कैसे करें
कोई मुझे बता सकते हैं अगर typelists की मेरी unterstanding सही है और एक सरल असली दुनिया उदाहरण कैसे हर दिन औसत कोड में typelists उपयोग करने के लिए दे सकता है? अग्रिम में धन्यवाद।
बीटीडब्ल्यू, मैं विंडोज और विजुअल स्टूडियो 2005 और इसके कंपाइलर का उपयोग कर रहा हूं।
संपादित करें: मेरे उदाहरण चले गए हैं, मैं बनाम उन चीजों का परीक्षण करने में एकसैंडबॉक्स परियोजना का उपयोग करें। लेकिन यह शांत डोब्स ट्यूटोरियल में कोड करने के लिए समान था:
void SomeOperation(DocumentItem* p)
{
if (TextArea* pTextArea = dynamic_cast<TextArea*>(p))
{
... operate on a TextArea object ...
}
else if (VectorGraphics* pVectorGraphics =
dynamic_cast<VectorGraphics*>(p))
{
... operate on a VectorGraphics object ...
}
else if (Bitmap* pBitmap = dynamic_cast<Bitmap*>(p))
{
... operate on a Bitmap object ...
}
else
{
throw "Unknown type passed";
}
}
यह काम करता है, लेकिन मैं विरासत जो भी ऐसा ही करने में सक्षम है पर लाभ नहीं दिख रहा। और गतिशील कास्ट आदिम प्रकार पर काम नहीं करते हैं। यह संभव एक वापसी मान के रूप में उपयोग करने के लिए की तरह है:
typedef Typelist<int, string> mylist
mylist myfunction() {
if(foo == bar)
return 5;
return "five";
}
कोड का एक उदाहरण जोड़ें जो आपके प्रश्न पर काम नहीं करता है। –