25 #include <type_traits>
35 namespace openPMD::auxiliary
54 return std::shared_ptr<T>(x, [](T *) {});
58 std::shared_ptr<T const>
shareRaw(T
const *x)
60 return std::shared_ptr<T const>(x, [](T
const *) {});
65 -> std::shared_ptr<
typename std::remove_pointer<decltype(c.data())>::type>
67 using value_type =
typename std::remove_pointer<decltype(c.data())>::type;
68 return std::shared_ptr<value_type>(c.data(), [](value_type *) {});
73 -> std::shared_ptr<
typename std::remove_pointer<decltype(c.data())>::type>
75 using value_type =
typename std::remove_pointer<decltype(c.data())>::type;
76 return std::shared_ptr<value_type>(c.data(), [](value_type *) {});
std::shared_ptr< T > shareRaw(T *x)
Share ownership with a raw pointer.
Definition: ShareRaw.hpp:49