typedef boost::variant<int, double> Type;
class Append: public boost::static_visitor<>
{
public:
void operator()(int)
{}
void operator()(double)
{}
};
Type type(1.2);
Visitor visitor;
boost::apply_visitor(visitor, type);
साथ static_visitor यह संभव आगंतुक ऐसी है कि वह अतिरिक्त डेटा इस प्रकार प्राप्त करता है बदलने के लिए है। कन्स्ट्रक्टर के माध्यम से स्ट्रिंग पास करना इस मामले में एक विकल्प नहीं है।बढ़ावा :: कई तर्क
यह विकल्प क्यों नहीं है? परिवर्तनों के मामले में आप अलग-अलग तारों के साथ एक और परिशिष्ट वस्तु बना सकते हैं। – kennytm
स्ट्रिंग मूल्य किस समय बदल जाएगा? मुझे नहीं लगता कि यह एक कन्स्ट्रक्टर के साथ क्यों नहीं किया जा सकता है। – Mene
@ केनीटीएम परिशिष्ट वर्ग अपने कन्स्ट्रक्टर के माध्यम से कई निर्भरताओं को लेता है। अगर मैं अपनी कक्षा के भीतर परिशिष्ट वस्तु का पुनर्निर्माण करता हूं, तो इस कक्षा को अपने कन्स्ट्रक्टर के माध्यम से परिशिष्ट द्वारा उपयोग की जाने वाली सभी निर्भरताओं को भी लेने की आवश्यकता होगी। मैंने आशा की थी कि मेरी कक्षा बस अपने कन्स्ट्रक्टर के माध्यम से एक परिशिष्ट वस्तु ले लेगी। – Baz