1#ifndef NEFORCE_CORE_REFLECT_PROPERTY_HPP__
2#define NEFORCE_CORE_REFLECT_PROPERTY_HPP__
13NEFORCE_BEGIN_NAMESPACE__
14NEFORCE_BEGIN_REFLECT__
35 reflect::type_id type_id_;
63 NEFORCE_NODISCARD reflect::type_id
type_id() const noexcept {
return type_id_; }
71 if (!obj || !getter_) {
74 return getter_(
move(obj));
84 if (!obj || !setter_) {
88 setter_(
move(obj), value);
102 template <
typename T, enable_if_t<!is_same_v<meta_any, decay_t<T>>,
int> = 0>
103 bool set(
void* obj, T&& value)
const {
111NEFORCE_END_NAMESPACE__
NEFORCE_NODISCARD constexpr T && forward(remove_reference_t< T > &x) noexcept
完美转发左值
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
basic_string_view< char > string_view
字符字符串视图