Вопросы с тегом «allocator»

16
Неубедительные примеры пользовательских распределителей C ++?
Какие есть веские причины отказаться std::allocatorот нестандартного решения? Сталкивались ли вы с ситуациями, когда это было абсолютно необходимо для корректности, производительности, масштабируемости и т. Д.? Какие-нибудь действительно умные примеры? Пользовательские распределители всегда были функцией Стандартной библиотеки, в которой я не особенно нуждался. Мне просто интересно, может ли кто-нибудь здесь на …

3
polymorphic_allocator: когда и зачем мне его использовать?
Вот документация по cppreference , вот рабочий проект. Должен признать, что я не понимал, какова настоящая цель polymorphic_allocatorи когда / почему / как я должен его использовать. Например, pmr::vectorподпись имеет следующую подпись: namespace pmr { template <class T> using vector = std::vector<T, polymorphic_allocator<T>>; } Что polymorphic_allocatorпредлагает? Что std::pmr::vectorпредлагает предложение относительно …
123 c++  allocator  c++17 

3
Хранитель shared_ptr хранится в памяти, выделенной пользовательским распределителем?
Скажем, у меня есть shared_ptrпользовательский распределитель и пользовательский удалитель. Я не могу найти в стандарте ничего, что говорит о том, где должен храниться удалитель: он не говорит, что пользовательский распределитель будет использоваться для памяти удалителя, и не говорит, что этого не будет. Это не указано или я просто что-то упустил?

1
В чем разница между старым alloctaor :: construct и новым и явным конструктором?
Как я знаю, std::allocator<T>::constructпринимает только два параметра в более старой версии C ++; первый - указатель на необработанную неструктурированную память, в которой мы хотим создать объект типа, Tа второй - значение типа элемента для инициализации этого объекта. Итак, конструктор копирования вызывается: struct Foo { Foo(int, int) { cout << "Foo(int, …
15 c++  allocator 

2
Могу ли я использовать собственный распределитель для std :: array для безопасных криптографических ключей?
Я знаю, std::arrayчто полностью распределен в стеке, но этот вопрос мотивирован проблемами безопасности, которые требуют двух вещей: Данные в std::arrayнуле или будут рандомизированы при уничтожении Данные в std::arrayбудут заблокированы , так что они никогда не попадут на диск ни в случае сбоя, ни в разделе подкачки Обычно std::vectorрешение заключается в …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.