brintos

brintos / llvm-project-archived public Read only

0
0
Text · 847 B · 4201e82 Raw
31 lines · c
1//===-- Utils.h -------------------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_API_UTILS_H10#define LLDB_SOURCE_API_UTILS_H11 12#include "llvm/ADT/STLExtras.h"13#include <memory>14 15namespace lldb_private {16 17template <typename T> std::unique_ptr<T> clone(const std::unique_ptr<T> &src) {18  if (src)19    return std::make_unique<T>(*src);20  return nullptr;21}22 23template <typename T> std::shared_ptr<T> clone(const std::shared_ptr<T> &src) {24  if (src)25    return std::make_shared<T>(*src);26  return nullptr;27}28 29} // namespace lldb_private30#endif31