расширения/уменьшения аллоцированного участка памяти?
А. Я почему-то подумал об уменьшении, а речь о хинте "alloc_after"
А если сделать resize на величину ниже текущего размера vector-а, то реального уменьшения аллоциронной области не произойдет
shrink_to_fit() и никаких проблем/копий/etc
я не уверен, что это так необходимо
ну кстати, уменьшение тоже можно сделать по аналогии, просто передвинув границу
Вроде он не решает эту проблему. И судя по cppreference он все еще может сделать копирования
А много ли реальных аллокаторов так умеют?
Да, меня чот понесло
это не имеет значения, если не предоставить интерфейс, никто и не научится
Дело не в интерфейсе. realloc'у уже тысяча лет
но я не realloc предлагаю
А что же? The reallocation is done by either: a) expanding or contracting the existing area pointed to by ptr, if possible. The contents of the area remain unchanged up to the lesser of the new and old sizes. If the area is expanded, the contents of the new part of the array are undefined
Как вариант - просто завести allocator_traits типа supports_realloc и интерфейс для реаллокации. А на уровне стандартного аллокатора предоставлять такую возможность... Мне кажется не все системы так умеют
а где пункты после А?
Хотя этих аллокатор трэйтсов и так тьма...
https://en.cppreference.com/w/cpp/memory/c/realloc
realloc не гарантирует что всегда будет использовать эту стратегию
Обсуждают сегодня