2015-10-28 9 views
5

के लिए स्टैक आवंटक एक सॉफ़्टवेयर के लिए मुझे ढेर में स्मृति के किसी भी उपयोग से बचने के लिए, और केवल स्टैक-आवंटित स्मृति पर भरोसा करना है। फिर, यह मुझे किसी भी सी ++ मानक कंटेनर, जैसे कि वेक्टर, मैप, स्ट्रिंग (अच्छी तरह से, मूल_स्ट्रिंग) का उपयोग करने से रोकता है, जिसे मैं वास्तव में उपयोग करना चाहता हूं, विकास और डेटा हेरफेर को कम करने के लिए।सी ++ 03 मानक कंटेनर

मुझे this one जैसे स्टैक आवंटकों के कई (कई) कार्यान्वयन मिले जो स्वयं क्रोमियम से दो अन्य, या this one का संदर्भ देते हैं।

उनमें से कई मानक के साथ पूरी तरह से अनुपालन नहीं कर रहे हैं, या सी ++ 11 पर भरोसा करते हैं (और मैं इस समय सी ++ 03 के साथ फंस गया हूं)। क्या आपके पास C++ 03 के लिए पहले से मौजूद किसी मौजूदा स्टैक आवंटक के बारे में कोई प्रतिक्रिया है या क्या मुझे उपर्युक्त में से एक को अनुकूलित करना चाहिए?

धन्यवाद!

+4

हॉवर्ड हिन्नेंट एक [सी ++ 03 उनके आवंटक के लिए bolierplate] देता है (http://howardhinnant.github.io/allocator_boilerplate.html) यह भी देखें [हिन्नेंट के स्टैक आवंटक के बारे में प्रश्न] (http://stackoverflow.com/ क्यू/11648202/1708801) –

उत्तर

3

हावर्ड Hinnant के short_alloc.h (see also here) एक बहुत अच्छी शुरुआत है (आप here देखते हैं, सी ++ 03 बॉयलरप्लेट जोड़ने की आवश्यकता होगी)।

बेशक, यह स्मृति से बाहर होने पर ही ढेर पर जायेगा, विकल्प std::bad_alloc फेंकना है।

संबंधित मुद्दे