chenjunfu2-nbt-cpp v2.1.0
一个基于CPP20的NBT(Named Binary Tag)库
载入中...
搜索中...
未找到
NBT_TAG.hpp
浏览该文件的文档.
1#pragma once
2
3#include <stdint.h>
4#include <stddef.h>//size_t
5#include <compare>
6
9
12using NBT_TAG_RAW_TYPE = uint8_t;
13
33
34//运算符重载
35
38
44template<typename T>
45constexpr bool operator==(T l, NBT_TAG r)
46{
47 return l == (NBT_TAG_RAW_TYPE)r;
48}
49
55template<typename T>
56constexpr bool operator==(NBT_TAG l, T r)
57{
58 return (NBT_TAG_RAW_TYPE)l == r;
59}
60
65constexpr bool operator==(NBT_TAG l, NBT_TAG r)
66{
67 return (NBT_TAG_RAW_TYPE)l == (NBT_TAG_RAW_TYPE)r;
68}
69
75template<typename T>
76constexpr bool operator!=(T l, NBT_TAG r)
77{
78 return l != (NBT_TAG_RAW_TYPE)r;
79}
80
86template<typename T>
87constexpr bool operator!=(NBT_TAG l, T r)
88{
89 return (NBT_TAG_RAW_TYPE)l == r;
90}
91
96constexpr bool operator!=(NBT_TAG l, NBT_TAG r)
97{
98 return (NBT_TAG_RAW_TYPE)l != (NBT_TAG_RAW_TYPE)r;
99}
100
106template<typename T>
107constexpr std::strong_ordering operator<=>(T l, NBT_TAG r)
108{
109 return l <=> (NBT_TAG_RAW_TYPE)r;
110}
111
117template<typename T>
118constexpr std::strong_ordering operator<=>(NBT_TAG l, T r)
119{
120 return (NBT_TAG_RAW_TYPE)l <=> r;
121}
122
127constexpr std::strong_ordering operator<=>(NBT_TAG l, NBT_TAG r)
128{
129 return (NBT_TAG_RAW_TYPE)l <=> (NBT_TAG_RAW_TYPE)r;
130}
131
constexpr bool operator==(T l, NBT_TAG r)
比较任意类型与NBT_TAG是否相等
定义 NBT_TAG.hpp:45
constexpr bool operator!=(T l, NBT_TAG r)
比较任意类型与NBT_TAG是否不相等
定义 NBT_TAG.hpp:76
constexpr std::strong_ordering operator<=>(T l, NBT_TAG r)
三路比较任意类型与NBT_TAG的大小关系
定义 NBT_TAG.hpp:107
uint8_t NBT_TAG_RAW_TYPE
NBT_TAG的原始类型,用于二进制读写或判断等
定义 NBT_TAG.hpp:12
NBT_TAG
枚举NBT类型对应的类型标签值
定义 NBT_TAG.hpp:17
@ Int
对应NBT_Type::Int
定义 NBT_TAG.hpp:21
@ Float
对应NBT_Type::Float
定义 NBT_TAG.hpp:23
@ ByteArray
对应NBT_Type::ByteArray
定义 NBT_TAG.hpp:25
@ Short
对应NBT_Type::Short
定义 NBT_TAG.hpp:20
@ Long
对应NBT_Type::Long
定义 NBT_TAG.hpp:22
@ End
对应NBT_Type::End
定义 NBT_TAG.hpp:18
@ LongArray
对应NBT_Type::LongArray
定义 NBT_TAG.hpp:30
@ Byte
对应NBT_Type::Byte
定义 NBT_TAG.hpp:19
@ IntArray
对应NBT_Type::IntArray
定义 NBT_TAG.hpp:29
@ Double
对应NBT_Type::Double
定义 NBT_TAG.hpp:24
@ ENUM_END
枚举结束标记,用于计算enum元素个数,范围判断等
定义 NBT_TAG.hpp:31