// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_CONTAINERS_HEAP_ARRAY_H_ #define BASE_CONTAINERS_HEAP_ARRAY_H_ #include <stddef.h> #include <memory> #include <type_traits> #include <utility> #include "base/compiler_specific.h" #include "base/containers/span.h" #include "third_party/abseil-cpp/absl/base/attributes.h" namespace base { // HeapArray<T> is a replacement for std::unique_ptr<T[]> that keeps track // of its size. It is intended to provide easy conversion to span<T> for most // usage, but it also provides bounds-checked indexing. // // By default, elements in the array are either value-initialized (i.e. zeroed // for primitive types) when the array is created using the WithSize() // static method, or uninitialized when the array is created via the Uninit() // static method. template <typename T, typename Deleter = void> class TRIVIAL_ABI GSL_OWNER HeapArray { … }; } // namespace base #endif // BASE_CONTAINERS_HEAP_ARRAY_H_