C ++ 17 ने std :: align_alloc क्यों पेश किया?
उद्देश्य: प्रेरणा को समझने के लिए कि C ++ 17 std::aligned_allocको गतिशील मेमोरी प्रबंधन के लिए क्यों पेश किया गया।
समस्या: C ++ में मेमोरी आबंटन के लिए, उपयोग std::mallocकरना वास्तव में हमेशा अलग-अलग कारणों से छूट के कारण हतोत्साहित किया जाता है । किन मामलों में मैं मॉलोक और / या नए का उपयोग करता हूं? । इसके बजाय, newअभिव्यक्ति का उपयोग लगभग हमेशा निम्न-स्तरीय कोड में किया जाता है (जैसे नोट्स देखें )।
इस हतोत्साहन के बावजूद, मुझे आश्चर्य है कि C ++ 17 को क्यों पेश किया गया std::aligned_allocजो निरंतरता की तरह दिखता है std::malloc।
क्या C ++ 17 (और उससे आगे) में कुछ भी ऐसा नहीं है जो new(या अन्य समकक्ष उपयोगिताओं द्वारा उपयोग किए जाने के लिए प्रोत्साहित नहीं किया जा सकता है , यदि कोई हो)?
प्रयास: मैं केवल निम्नलिखित चर्चा पा सकता हूं, जो अभी भी मेरे प्रश्न से संबंधित है:
संरेखित मॉलोक और मानक मॉलोक के बीच अंतर?
जवाब
C ++ 17 ने C से C11 तक सादे C के लिए अपना समर्थन बढ़ाया। यह aligned_allocC11 से अन्य सामान के साथ विरासत में मिला ।
कागज: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0063r3.html
तो प्रेरणा उन लोगों के लिए C ++ में C सुविधाएं उपलब्ध कराना है जो उन्हें चाहते हैं।