में कक्षा के सदस्य के रूप में वितरण कक्षाओं के भीतर वितरण के उपयोग से संबंधित मेरे दो संबंधित प्रश्न हैं।सी ++
वहाँ आदेश यह जानकर कि किस वितरण यह हो जाएगा के बिना एक वर्ग के सदस्य के रूप में एक वितरण का उपयोग करने के सी में आधार वितरण ++ किसी तरह का है? मैं टेम्पलेट का उपयोग नहीं कर सकते हैं (प्रश्न 2 देखें)
class Foo{ private: // could by any distribution std::base_distribution dist_; };
मैं किसी अन्य वर्ग
Bar
है कि एक निजी सदस्य (std::vector<Foo>
) के रूप मेंFoo
का एक वेक्टर होना चाहिए है। समस्या यह है कि यदिFoo
टेम्पलेट का उपयोग करता है, तो अलग-अलग टेम्पलेट तर्कों का वेक्टर होना संभव नहीं है जो मैं चाहता हूं।class Bar { private: std::vector<Foo> foo_; };
boost::variant
मदद नहीं करता है, क्योंकि या तो मैं वितरण के प्रकार पता नहीं है। तो यह (उदाहरण के लिए) मेरे मामले में संभव नहीं है:
class Bar{
private:
boost::variant<std::normal_distribution<>, std::uniform_real_distribution<> > dists_;
};
यदि आपको केवल एक प्रकार के यादृच्छिक संख्या इंजन का समर्थन करने की आवश्यकता है, तो 'std :: function' पर्याप्त हो सकता है। –