MCPcopy Create free account
hub / github.com/Snapchat/Valdi / unsafeSharedMove

Function unsafeSharedMove

valdi_core/src/valdi_core/cpp/Utils/Shared.hpp:395–403  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

393*/
394template<typename T, typename std::enable_if<std::is_convertible<T*, SharedPtrRefCountable*>::value, int>::type = 0>
395T* unsafeSharedMove(std::shared_ptr<T>&& ptr) {
396 auto* innerPtr = ptr.get();
397
398 typename std::aligned_storage<sizeof(std::shared_ptr<T>), alignof(std::shared_ptr<T>)>::type storage;
399 static_assert(sizeof(storage) == sizeof(std::shared_ptr<T>));
400 new (&storage) std::shared_ptr<T>(std::move(ptr));
401
402 return innerPtr;
403}
404
405template<typename T, typename From>
406Ref<T> unsafeCast(const Ref<From>& ptr) {

Callers 3

RefMethod · 0.85
RefClass · 0.85
TESTFunction · 0.85

Calls 1

getMethod · 0.65

Tested by 1

TESTFunction · 0.68