Realm C++ SDK版本 v 2.2.0

managed_binary.hpp

1
2//
3// 版权所有 2024 Realm Inc.
4//
5// 根据 Apache 许可证 2.0 版(“许可证”)获得许可;
6// 除非符合合规,否则不得使用此文件。
7// 您可以在以下网址获取许可证副本:
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// 除非适用法律要求或书面同意,否则软件
12// 根据许可证分发是按“原样”分发的,
13// 不提供任何类型的Express或暗示的保证或条件。
14// 请参阅管理权限的特定语言的许可证和
15// 许可证下的限制。
16//
18
19#ifndef CPPREALM_MANAGED_BINARY_HPP
20#define CPPREALM_MANAGED_BINARY_HPP
21
22#include <cpprealm/macros.hpp>
23#include <cpprealm/types.hpp>
24
25命名空间域 {
26 class rbool;
27 }
28
29命名空间域 {
30
31 template <>
32 struct 托管 <std::vector<uint 8 _t>> : Managed_base {
33 运用 managed <std::vector<uint 8 _t>>::managed_base::operator=;
34
35 [[nodiscard]] std::vector<uint 8 _t> 分离() const ;
36 [[nodiscard]]操作符std::vector<uint 8 _t>() const ;
37
38 std::vector<uint 8 _t> Operator*() const ;
39 void push_back(uint8_t v);
40 uint8_t operator[](uint8_t idx) const;
41 size_t size() const ;
42
43 //MARK:-比较操作符
44 rbool 操作符==( const std::vector<uint 8 _t>& rhs) const noException ;
45 rbool操作符!=( const std::vector<uint 8 _t>& rhs) const noException ;
46
47 private :
48 托管() = 默认;
49 托管 ( const 托管 &) = delete ;
50 托管 ( 托管 &&) = delete ;
51 托管 & 操作符=( const 托管 &) = delete ;
52 托管 & 操作符=( 托管 &&) = delete ;
53 template < typename , typename >
54 朋友 struct 托管
55 };
56
57 template <>
58 struct 托管 <std::Optional<std::vector<uint 8 _t>>> : Managed_base {
59 运用 托管 <std::Optional<std::Vector<uint 8 _t>>>::managed_base:: 操作符=;
60
61 [[nodiscard]] std::Optional<std::vector<uint 8 _t>> 分离() const ;
62 [[nodiscard]]操作符std::Optional<std::vector<uint 8 _t>>() const ;
63
64 struct {
65 std::Optional<std::vector<uint 8 _t>> 操作符*() const ;
66 void push_back(uint8_t v);
67 uint8_t operator[](uint8_t idx) const;
68 size_t size() const ;
69 private :
70 盒子托管和父):m_parent(parent) { }
71 std::reference_wrapper<managed<std::Optional<std::vector<uint 8 _t>>>> m_parent;
72 朋友 struct 托管 <std::Optional<std::Vector<uint 8 _t>>>;
73 };
74
75 std::unique_ptr<box> Operator->()
76 {
77 return std::make_unique<box>( box (* this ));
78 }
79 [[nodiscard]]操作符*() {
80 return Box (* this );
81 }
82
83 //MARK:-比较操作符
84 rbool 操作符==( const std::Optional<std::vector<uint 8 _t>>& rhs) const noException ;
85 rbool操作符!=( const std::Optional<std::vector<uint 8 _t>>& rhs) const noException ;
86
87 private :
88 托管() = 默认;
89 托管 ( const 托管 &) = delete ;
90 托管 ( 托管 &&) = delete ;
91 托管 & 操作符=( const 托管 &) = delete ;
92 托管 & 操作符=( 托管 &&) = delete ;
93 template < typename , typename >
94 朋友 struct 托管
95 };
96 }
97
98
99#endif//CPREALM_MANAGED_BINARY_HPP
定义: rbool.hpp:36
定义: managed_dictionary.hpp: 129
定义: macros.hpp:286
定义: obj.hpp:62