1#ifndef NEFORCE_CORE_REFLECT_PROPERTY_HPP__
2#define NEFORCE_CORE_REFLECT_PROPERTY_HPP__
16NEFORCE_BEGIN_NAMESPACE__
17NEFORCE_BEGIN_REFLECT__
53 return (attrs &
static_cast<uint16_t>(flag)) != 0;
74 string notify_signal_name_;
181 NEFORCE_NODISCARD
bool has_notify_signal() const noexcept {
return !notify_signal_name_.empty(); }
200 if (obj ==
nullptr || !getter_) {
213 if (obj ==
nullptr || !setter_) {
231 template <
typename T, enable_if_t<!is_same_v<meta_any, decay_t<T>>,
int> = 0>
232 bool set(
void* obj, T&& value)
const {
240NEFORCE_END_NAMESPACE__
constexpr basic_string_view view(const size_type off, const size_type count=npos) const
获取子视图
constexpr T && forward(remove_reference_t< T > &x) noexcept
完美转发左值
unsigned int uint32_t
32位无符号整数类型
unsigned short uint16_t
16位无符号整数类型
constexpr bool prop_has_attr(const uint16_t attrs, const property_attr flag) noexcept
检查属性注解是否包含指定标志
@ PROP_READ_ONLY
仅 getter,无 setter
@ PROP_TRANSIENT
序列化时跳过此属性
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
basic_string_view< char > string_view
字符字符串视图