C ++ 17 neden std :: align_alloc'u tanıttı?

Sep 13 2020

Amaç:std::aligned_alloc Dinamik bellek yönetimi için C ++ 17'nin neden piyasaya sürüldüğünü anlamak .

Sorun: C bellek tahsisi için ++, kullanarak std::mallocneredeyse her zaman önerilmez nedeniyle altında örneklenen çeşitli nedenlerle ben malloc ve / veya yeni kullanabilirim hangi durumlarda In? . Bunun yerine, newifade kullanmak neredeyse her zaman düşük seviyeli kodda teşvik edilir (örneğin Notlara bakın ).

Bu cesaretsizliğe rağmen, neden C ++ 17'nin std::aligned_allocdevamı gibi görünen C ++ 17'yi tanıttı std::malloc?

C ++ 17'de (ve ötesinde) gerçekleştirilemeyen new(veya varsa kullanılması önerilen diğer eşdeğer yardımcı programlar) herhangi bir şey var mı?

Denemeler: Sorumla hala uzaktan ilgili olan şu tartışmayı bulabildim:

Hizalanmış malloc ve standart malloc arasındaki fark nedir?

Yanıtlar

5 dratenik Sep 13 2020 at 21:36

C ++ 17, C99'dan C11'e düz C desteğini artırdı. aligned_allocC11'den diğer şeylerle birlikte miras kaldı .

kağıt: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0063r3.html

Dolayısıyla motivasyon, C özelliklerini isteyenler için C ++ 'da kullanılabilir hale getirmektir.