24#include "AstUtil/ReflectAPI.hpp"
47A_ALWAYS_INLINE
Property* _aNewProperty<TimePoint>(FPropertyGet getter, FPropertySet setter)
55template<
typename T, TimePo
int T::* Member>
56A_ALWAYS_INLINE Property* aNewPropertyTimePointMem()
58 return _aNewPropertyTimePoint(
59 [](
const void* obj,
void* value) -> errc_t
61 *((TimePoint*)value) = ((T*)obj)->*Member;
64 [](
void* obj,
const void* value) -> errc_t
66 ((T*)obj)->*Member = *((TimePoint*)value);
73template<
typename T, TimePo
int T::* Member>
76 return aNewPropertyTimePointMem<T, Member>();
86template<
typename T, TimePo
int(T::*Getter)() const>
87A_ALWAYS_INLINE Property* aNewPropertyTimePoint()
89 return _aNewPropertyTimePoint(
90 [](
const void* obj,
void* value) -> errc_t
92 *((TimePoint*)value) = (((T*)obj)->*Getter)();
100template<
typename T, const TimePo
int& (T::* Getter) () const,
void (T::* Setter)(const TimePo
int&)>
103 static_assert(Getter!=
nullptr,
"invalid getter");
104 static_assert(Setter!=
nullptr,
"invalid setter");
107 [](
const void* obj,
void* value) -> errc_t
109 *((TimePoint*)value) = (((T*)obj)->*Getter)();
112 [](
void* obj,
const void* value) -> errc_t
114 (((T*)obj)->*Setter)(*((TimePoint*)value));
122template<
typename T, const TimePo
int& (T::* Getter) () const, errc_t (T::* Setter)(const TimePo
int& value)>
125 static_assert(Getter!=
nullptr,
"invalid getter");
126 static_assert(Setter!=
nullptr,
"invalid setter");
129 [](
const void* obj,
void* value) -> errc_t
131 *((TimePoint*)value) = (((T*)obj)->*Getter)();
134 [](
void* obj,
const void* value) -> errc_t
136 return (((T*)obj)->*Setter)(*((TimePoint*)value));
Property * _aNewPropertyTimePoint(FPropertyGet getter, FPropertySet setter)
创建一个时间点属性
定义 ReflectAPI.cpp:26
A_ALWAYS_INLINE Property * aNewPropertyTimePoint()
创建一个时间点属性
定义 ReflectAPI.hpp:74