NexusForce
1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
serializer_base.hpp
浏览该文件的文档.
1
#ifndef NEFORCE_CORE_SERIALIZE_SERIALIZER_BASE_HPP__
2
#define NEFORCE_CORE_SERIALIZE_SERIALIZER_BASE_HPP__
3
10
11
#include "
NeForce/core/reflect/reflect.hpp
"
12
NEFORCE_BEGIN_NAMESPACE__
13
NEFORCE_BEGIN_SERIALIZE__
14
20
27
struct
serialize_context
{
28
bool
include_transient
=
false
;
29
bool
pretty
=
false
;
30
uint32_t
version
= 0;
31
};
32
38
NEFORCE_NODISCARD
inline
bool
is_arithmetic_type
(
const
reflect::type_id
tid)
noexcept
{
39
return
tid ==
reflect::type_id_for<bool>
() || tid ==
reflect::type_id_for<char>
() ||
40
tid ==
reflect::type_id_for<short>
() || tid ==
reflect::type_id_for<int>
() ||
41
tid ==
reflect::type_id_for<long>
() || tid ==
reflect::type_id_for<long long>
() ||
42
tid ==
reflect::type_id_for<unsigned char>
() || tid ==
reflect::type_id_for<unsigned short>
() ||
43
tid ==
reflect::type_id_for<unsigned int>
() || tid ==
reflect::type_id_for<unsigned long>
() ||
44
tid ==
reflect::type_id_for<unsigned long long>
() || tid ==
reflect::type_id_for<float>
() ||
45
tid ==
reflect::type_id_for<double>
() || tid ==
reflect::type_id_for<long double>
() ||
46
#ifdef NEFORCE_STANDARD_20
47
tid ==
reflect::type_id_for<char8_t>
() ||
48
#endif
49
tid ==
reflect::type_id_for<wchar_t>
() || tid ==
reflect::type_id_for<char16_t>
() ||
50
tid ==
reflect::type_id_for<char32_t>
();
51
}
52
58
NEFORCE_NODISCARD
inline
bool
is_char_type
(
const
reflect::type_id
tid)
noexcept
{
59
return
tid ==
reflect::type_id_for<char>
() || tid ==
reflect::type_id_for<wchar_t>
() ||
60
#ifdef NEFORCE_STANDARD_20
61
tid ==
reflect::type_id_for<char8_t>
() ||
62
#endif
63
tid ==
reflect::type_id_for<char16_t>
() || tid ==
reflect::type_id_for<char32_t>
();
64
}
65
71
NEFORCE_NODISCARD
inline
bool
is_string_type
(
const
reflect::type_id
tid)
noexcept
{
72
return
tid ==
reflect::type_id_for<string>
();
73
}
74
// Serialize
76
77
NEFORCE_END_SERIALIZE__
78
NEFORCE_END_NAMESPACE__
79
#endif
// NEFORCE_CORE_SERIALIZE_SERIALIZER_BASE_HPP__
neforce::uint32_t
unsigned int uint32_t
32位无符号整数类型
定义
typeinfo/types.hpp:109
neforce::reflect::type_id
size_t type_id
类型标识符
定义
reflect/any.hpp:23
neforce::reflect::type_id_for
constexpr type_id type_id_for() noexcept
计算类型 T 的运行时期类型标识
定义
reflect/any.hpp:60
neforce::serialize::is_string_type
bool is_string_type(const reflect::type_id tid) noexcept
判断指定类型 ID 是否为字符串类型
定义
serializer_base.hpp:71
neforce::serialize::is_arithmetic_type
bool is_arithmetic_type(const reflect::type_id tid) noexcept
判断指定类型 ID 是否为基础算术类型
定义
serializer_base.hpp:38
neforce::serialize::is_char_type
bool is_char_type(const reflect::type_id tid) noexcept
判断指定类型 ID 是否为字符类型
定义
serializer_base.hpp:58
reflect.hpp
反射系统主入口
neforce::serialize::serialize_context
序列化上下文
定义
serializer_base.hpp:27
neforce::serialize::serialize_context::include_transient
bool include_transient
是否包含暂态属性
定义
serializer_base.hpp:28
neforce::serialize::serialize_context::pretty
bool pretty
是否美化输出
定义
serializer_base.hpp:29
neforce::serialize::serialize_context::version
uint32_t version
序列化版本号
定义
serializer_base.hpp:30
include
NeForce
core
serialize
serializer_base.hpp
制作者
1.16.0