12LIBCOPP_COPP_NAMESPACE_BEGIN
15#if LIBCOPP_MACRO_ENABLE_MULTI_THREAD
30template <
class T,
class... ArgsT>
32 return default_rc_ptr_trait::template make_shared<T>(std::forward<ArgsT>(args)...);
35template <
class T,
class Alloc,
class... TArgs>
37 return default_rc_ptr_trait::template allocate_shared<T>(alloc, std::forward<TArgs>(args)...);
40template <
class T,
class F>
42 return default_rc_ptr_trait::template static_pointer_cast<T>(std::forward<F>(f));
45template <
class T,
class F>
47 return default_rc_ptr_trait::template const_pointer_cast<T>(std::forward<F>(f));
50#if defined(LIBCOPP_MACRO_ENABLE_RTTI) && LIBCOPP_MACRO_ENABLE_RTTI
51template <
class T,
class F>
53 return default_rc_ptr_trait::template dynamic_pointer_cast<T>(std::forward<F>(f));
58LIBCOPP_COPP_NAMESPACE_END
#define LIBCOPP_UTIL_FORCEINLINE
LIBCOPP_UTIL_FORCEINLINE default_strong_rc_ptr< T > default_allocate_strong(const Alloc &alloc, TArgs &&... args)
typename default_rc_ptr_trait::template weak_ptr< T > default_weak_rc_ptr
LIBCOPP_UTIL_FORCEINLINE default_strong_rc_ptr< T > default_static_pointer_cast(F &&f)
LIBCOPP_UTIL_FORCEINLINE default_strong_rc_ptr< T > default_make_strong(ArgsT &&... args)
LIBCOPP_UTIL_FORCEINLINE default_strong_rc_ptr< T > default_const_pointer_cast(F &&f)
typename default_rc_ptr_trait::template shared_ptr< T > default_strong_rc_ptr
compat_strong_ptr_function_trait< compat_strong_ptr_mode::kStrongRc > default_rc_ptr_trait
typename default_rc_ptr_trait::template enable_shared_from_this< T > default_enable_shared_from_this