24#include "AstUtil/Object.hpp"
25#include "AstUtil/WeakPtr.hpp"
62template <
typename Func>
69 static errc_t invoke(F& f,
70 typename std::enable_if<!std::is_void<
71 decltype(std::declval<F>()())>::value>::type* =
nullptr)
78 static errc_t invoke(F& f,
79 typename std::enable_if<std::is_void<
80 decltype(std::declval<F>()())>::value>::type* =
nullptr)
103AST_UTIL_CAPI
void aAddObjectLinker(ObjectLinker* linker);
109AST_UTIL_CAPI errc_t aObject_ResolveLinks(Object*
object);
115AST_UTIL_CAPI errc_t aResolveAllLinks();
123template <
typename Func>
132template<
typename Func>
133inline void Object::addDelayedLink(Func &&link)
138template<
typename Func>
139inline void Object::addDelayedLinkIfFailed(Func &&link)
147A_ALWAYS_INLINE
void Object::resolveLinks()
通用对象链接器
定义 ObjectLinker.hpp:64
virtual errc_t resolve() override
解析对象的延迟链接
定义 ObjectLinker.hpp:92
对象链接器
定义 ObjectLinker.hpp:38
virtual errc_t resolve()=0
解析对象的延迟链接
Object * object() const
获取相关对象
定义 ObjectLinker.hpp:53
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:86
errc_t aObject_ResolveLinks(Object *object)
解析对象的延迟链接
定义 ObjectLinker.cpp:133
void aObject_AddDelayedLink(Object *object, Func func)
添加对象延迟链接
定义 ObjectLinker.hpp:124
void aAddObjectLinker(ObjectLinker *linker)
添加对象延迟链接
定义 ObjectLinker.cpp:127