cpp-ru/ideas

Функция возвращющие размер динамического выделенного массива в частности std::unique_ptr<T[]>::size() method.

raidenluikang opened this issue · 0 comments

При выделение массив динамический способом, компилятор "знает" его размер, и хранить его где-то в любом случае.

int arr = new int[444]; // --> 444 где то в памяти хранится, все равно.

....

delete [] arr; // -> Если компилятор "незнал" бы размер, здесь он не смог бы удалить весь выделенный память.

Предлагаю добавить функция "извлекающий" тот размер из памяти.

Типа того get_dynamic_array_allocated_size.

<Примеры, где ваша идея будет полезна. Чем больше примеров и чем большую аудиторию они охватывают - тем лучше>
Это очень полезно в std::unique_ptr<T[]> , теперь там можно добавить size() метод возвращающий размер массива.

Это удобно в std::vector<T, std::allocator> с стандартнами аллокатаорами, теперь vector capacity можно не хранить, а спросить это из аллокатора.

<Код c реализацией вашей идеи, если есть>

Полезные ссылки:

  • https://quick-bench.com/ - онлайн бенчмарк, поможет вам продемонстрировать эффективность вашего подхода
  • https://godbolt.org/ - онлайн дизассемблер
  • https://eel.is/c++draft/ - черновик стандарта C++ с возможностью ссылаться на конкретные параграфы
  • https://wg21.link/ - универсальная ссылка на международные proposal или баги в С++, например https://wg21.link/P1000 ссылается на документ P1000, а https://wg21.link/cwg100 на 100 баг в ядре языка