🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
PropertyObject.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "Property.hpp"
25
26AST_NAMESPACE_BEGIN
27
31class AST_UTIL_API PropertyObject: public Property
32{
33public:
34 using Property::Property;
35 using InputType = Object;
36 using OutputType = Object*;
37protected:
42 A_ALWAYS_INLINE
43 errc_t setValue(void* container, const InputType* value)
44 {
45 return setter_(container, value);
46 }
47 A_ALWAYS_INLINE
48 errc_t getValue(void* container, OutputType* value)
49 {
50 return getter_(container, value);
51 }
52public:
57 errc_t accept(PropertyVisitor& visitor, const void* container) override;
58};
59
60
61AST_NAMESPACE_END
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:81
反射属性类(对象类型)
定义 PropertyObject.hpp:32
A_ALWAYS_INLINE errc_t setValue(void *container, const InputType *value)
设置属性值(对象类型)
定义 PropertyObject.hpp:43
反射属性类
定义 Property.hpp:58
A_ALWAYS_INLINE errc_t getValue(void *container, void *value)
获取属性值
定义 Property.hpp:138
virtual errc_t accept(PropertyVisitor &visitor, const void *container)=0
接受访问者