YSTest: Reference.h 源文件

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Reference.h
浏览该文件的文档.
1 /*
2 © 2010-2019 FrankHB.
3
4 This file is part of the YSLib project, and may only be used,
5 modified, and distributed under the terms of the YSLib project
6 license, LICENSE.TXT. By continuing to use, modify, or distribute
7 this file you indicate that you have read the license and
8 understand and accept it fully.
9 */
10
28 #ifndef YCL_INC_Reference_h_
29 #define YCL_INC_Reference_h_ 1
30
31 #include "YModules.h"
32 #include <utility>
33 #include <ystdex/memory.hpp>
34 #include <ystdex/ref.hpp>
35 #include <ystdex/pointer.hpp>
36
37 namespace platform
38 {
39
40 inline namespace references
41 {
42
47 using yimpl(ystdex)::allocate_shared;
49 using ystdex::allocate_unique;
50 using yimpl(std)::bad_weak_ptr;
51 using yimpl(std)::const_pointer_cast;
53 using yimpl(std)::default_delete;
54 using yimpl(std)::dynamic_pointer_cast;
55 using yimpl(std)::enable_shared_from_this;
56 using yimpl(std)::get_deleter;
58 using ystdex::get_raw;
60 using yimpl(ystdex)::make_observer;
62 using ystdex::make_shared;
64 using yimpl(ystdex)::make_unique;
66 using yimpl(ystdex)::make_unique_default_init;
68 using ystdex::make_weak;
70 using yimpl(ystdex)::observer_ptr;
72 using yimpl(std)::owner_less;
74 using ystdex::owns_any;
76 using ystdex::owns_nonnull;
78 using ystdex::owns_unique;
80 using ystdex::owns_unique_nonnull;
81 using ystdex::reset;
83
84 using ystdex::share_copy;
85 using ystdex::share_forward;
86 using ystdex::share_move;
88 using ystdex::share_raw;
89 using yimpl(std)::shared_ptr;
90 using yimpl(std)::static_pointer_cast;
92
93 using ystdex::unique_copy;
94 using ystdex::unique_forward;
95 using ystdex::unique_move;
97 using ystdex::unique_raw;
98 using yimpl(std)::unique_ptr;
108 template<class _tDeleter, typename _tDefault = void>
109 using unique_ptr_from = unique_ptr<ystdex::defer_element<
110 ystdex::unique_ptr_pointer<void, _tDeleter>, _tDefault>, _tDeleter>;
111 using yimpl(std)::weak_ptr;
112
114 using ystdex::lref;
115
117
118 using ystdex::nptr;
119 using ystdex::pointer_iterator;
121 using ystdex::tidy_ptr;
123
124 } // inline namespace references;
125
126 } // namespace platform;
127
128 namespace platform_ex
129 {
130
132 using namespace platform::references;
133
134 } // namespace platform_ex;
135
136 #endif
137
ystdex::make_weak
std::weak_ptr< _type > make_weak(const std::shared_ptr< _type > &p)
使用指定的 std::shared_ptr 实例的对象创建对应的 std::weak_ptr 实例的对象。
Definition: memory.hpp:866
ystdex::make_unique_default_init
enable_if_t<!is_array< _type >::value, std::unique_ptr< _type > > make_unique_default_init()
Definition: memory.hpp:788
ystdex::tidy_ptr
nptr< observer_ptr< _type > > tidy_ptr
Definition: pointer.hpp:415
ystdex::unique_forward
std::unique_ptr< decay_t< _type > > unique_forward(_tValue &&v)
传递值创建对应的 std::unique_ptr 实例的对象。
Definition: memory.hpp:1010
ystdex::lref
左值引用包装。
Definition: ref.hpp:61
ystdex::static_pointer_cast
std::unique_ptr< _tDst > static_pointer_cast(std::unique_ptr< _type > p)
智能指针转换。
Definition: memory.hpp:1077
platform::references::unique_ptr_from
unique_ptr< ystdex::defer_element< ystdex::unique_ptr_pointer< void, _tDeleter >, _tDefault >, _tDeleter > unique_ptr_from
取删除器对应的 unique_ptr 实例。
Definition: Reference.h:110
ystdex::allocate_unique
auto allocate_unique(const _tAlloc &alloc, _tParams &&... args) -> std::unique_ptr< _type, allocator_delete< rebind_alloc_t< _tAlloc, _type >>>
使用分配器创建 std::unique_ptr 。
Definition: allocator.hpp:912
platform_ex
平台扩展命名空间。
Definition: Android.h:46
ystdex::nptr
可空指针包装：满足 NullablePointer 要求同时满足转移后为空。
Definition: pointer.hpp:122
ref.hpp
引用包装。
ystdex::share_raw
std::shared_ptr< _type > share_raw(_type *p, _tParams &&... args)
Definition: memory.hpp:692
ystdex::unique_ptr_pointer
detected_or_t< _type *, deleter_member_pointer_t, _tDeleter > unique_ptr_pointer
取 unique_ptr 包装的指针类型。
Definition: memory.hpp:401
ystdex::make_shared
std::shared_ptr< _type > make_shared(std::initializer_list< _tValue > il)
使用指定类型的初始化列表构造指定类型的 std::shared_ptr 对象。
Definition: memory.hpp:855
ystdex::share_move
std::shared_ptr< decay_t< _type > > share_move(_tValue &&v)
转移值创建对应的 std::shared_ptr 实例的对象。
Definition: memory.hpp:942
pointer.hpp
通用指针。
ystdex::owns_unique_nonnull
bool owns_unique_nonnull(const _type &)
Definition: memory.hpp:573
ystdex::get_raw
_type * get_raw(_type *const &p)
Definition: memory.hpp:449
ystdex::unique_raw
std::unique_ptr< _type > unique_raw(_pSrc *p)
Definition: memory.hpp:645
ystdex::make_observer
observer_ptr< _type > make_observer(_type *p)
Definition: pointer.hpp:405
ystdex::pointer_iterator
指针迭代器。
Definition: pointer.hpp:431
ystdex::unique_move
std::unique_ptr< decay_t< _type > > unique_move(_tValue &&v)
转移值创建对应的 std::unique_ptr 实例的对象。
Definition: memory.hpp:1042
ystdex::unique_copy
std::unique_ptr< decay_t< _type > > unique_copy(const _tValue &v)
复制值创建对应的 std::unique_ptr 实例的对象。
Definition: memory.hpp:978
std
Definition: optional.h:982
ystdex::reset
bool reset(std::unique_ptr< _type, _tDeleter > &p)
Definition: memory.hpp:613
ystdex::dynamic_pointer_cast
std::unique_ptr< _tDst > dynamic_pointer_cast(std::unique_ptr< _type > &p)
Definition: memory.hpp:1091
ystdex::owns_nonnull
bool owns_nonnull(_type *const &)
Definition: memory.hpp:514
memory.hpp
存储和智能指针特性。
ystdex::share_copy
std::shared_ptr< decay_t< _type > > share_copy(const _tValue &v)
复制值创建对应的 std::shared_ptr 实例的对象。
Definition: memory.hpp:878
platform
默认平台命名空间。
Definition: Container.h:56
platform::references
Definition: Reference.h:41
YModules.h
YSLib 用户界面模块配置文件。
ystdex::const_pointer_cast
std::unique_ptr< _tDst > const_pointer_cast(std::unique_ptr< _type > p)
Definition: memory.hpp:1126
ystdex
<memory> 特性测试宏。
Definition: ydef.h:1262
ystdex::owns_unique
bool owns_unique(const _type &)
Definition: memory.hpp:546
ystdex::share_forward
std::shared_ptr< decay_t< _type > > share_forward(_tValue &&v)
传递值创建对应的 std::shared_ptr 实例的对象。
Definition: memory.hpp:910
ystdex::cpp2014::make_unique
enable_if_t<!is_array< _type >::value, std::unique_ptr< _type > > make_unique(_tParams &&... args)
Definition: memory.hpp:760
ystdex::owns_any
bool owns_any(_type *const &)
Definition: memory.hpp:482
ystdex::defer_element
cond_or< not_< is_void< remove_pointer_t< _tPointer > >>, _tDefault, indirect_element_t, _tPointer > defer_element
取指针对应的元素类型。
Definition: memory.hpp:410
yimpl
#define yimpl(...)
实现标签。
Definition: ydef.h:413
ystdex::allocate_shared
std::shared_ptr< _type > allocate_shared(const _tAlloc &alloc, _tParams &&... args)
使用分配器创建 std::shared_ptr 。
Definition: allocator.hpp:949