// Copyright 2024 The PDFium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CORE_FXCRT_PTR_UTIL_H_ #define CORE_FXCRT_PTR_UTIL_H_ #include #include namespace pdfium { // Helper to transfer ownership of a raw pointer to a std::unique_ptr. // Note that std::unique_ptr has very different semantics from // std::unique_ptr: do not use this helper for array allocations. template std::unique_ptr WrapUnique(T* ptr) { static_assert(!std::is_array::value, "array types are unsupported"); static_assert(std::is_object::value, "non-object types are unsupported"); return std::unique_ptr(ptr); } } // namespace pdfium #endif // CORE_FXCRT_PTR_UTIL_H_