// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_MEMORY_PTR_UTIL_H_ #define BASE_MEMORY_PTR_UTIL_H_ #include #include namespace base { // 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) { return std::unique_ptr(ptr); } // TODO(crbug.com/755727): Inline all uses. template auto MakeUnique(Args&&... args) -> decltype(std::make_unique(std::forward(args)...)) { return std::make_unique(std::forward(args)...); } } // namespace base #endif // BASE_MEMORY_PTR_UTIL_H_