2011-06-12 10 views
8

boost::shared_polymorphic_downcast और अन्य boost::shared_ptr कार्यों <boost/shared_ptr.hpp>सी ++ 11 में boost :: pop_polymorphic_downcast के std समकक्ष कहां है?

में मैं हाल ही में समर्थन के लिए सी ++ 11 जीसीसी में -std=c++0x के साथ सक्षम रहते हैं। भ्रम से बचने के लिए, मैं boost::shared_ptr से std::shared_ptr पर स्थानांतरित हुआ जो #include <memory> में रहता है।

हालांकि ऐसा लगता है कि shared_polymorphic_downcaststd नामस्थान का हिस्सा नहीं है और #include <memory> के साथ शामिल नहीं है।

क्या आप जानते हैं कि यह कहां है? मैं प्रतिवाद ज्ञापन ;-)

+0

ऐसी सुविधा को बहिष्कृत नहीं कर सकता जो कभी नहीं था। –

+0

लॉल, हाँ हाँ, मैं मजाक कर रहा था। मैं अक्सर लोकप्रिय बूस्ट सुविधाओं और एसटीएल के बीच की रेखा को गलती से धुंधला करता हूं। –

उत्तर

13

आप या तो std::static_pointer_cast या std::dynamic_pointer_cast, जरूरत है आप static_cast या dynamic_cast व्यवहार चाहते हैं पर निर्भर करता है से वंचित रह गए।

बूस्ट की स्मार्ट पॉइंटर्स लाइब्रेरी के हाल के संस्करणों में इन कार्यों को boost::shared_ptr के लिए भी शामिल किया गया है।

+1

ठीक है। कुछ चर्चाओं के लिए यहां देखें: http://lists.boost.org/boost-users/2005/03/10589.php –