cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

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

Open raidenluikang opened 1 year ago

raidenluikang commented 1 year ago

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

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 реализацией вашей идеи, если есть>

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