Realm C++ SDK版本 v 2.2.0

managed_uuid.hpp

1
2//
3// 版权所有 2022 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_UUID_HPP
20#define CPPREALM_MANAGED_UUID_HPP
21
22#include <cpprealm/macros.hpp>
23#include <cpprealm/types.hpp>
24
25命名空间域 {
26 class rbool;
27 }
28命名空间域 {
29
30 template <>
31 struct 托管 < 域:: uuid > : Managed_base {
32 运用 value_type = realm::uuid ;
33 运用 托管 < 域::uuid >::managed_base:: 操作符=;
34
35 [[nodiscard]] realm::uuid分离() const {
36 return m_obj->template<realm::internal::bridge::uuid> get(m_key)。操作符:: 域::uuid();
37 }
38
39 [[nodiscard]] 域::uuid 操作符 *() const {
40 return detach();
41 }
42
43 [[nodiscard]]操作符realm::uuid () const {
44 return detach();
45 }
46
47 //MARK:-比较操作符
48 rbool 操作符==(const 域::uuid& rhs) const noexcept;
49 rbool操作符!=( const 域::uuid & rhs) const noException ;
50
51 private :
52 托管() = 默认;
53 托管 ( const 托管 &) = delete ;
54 托管 ( 托管 &&) = delete ;
55 托管 & 操作符=( const 托管 &) = delete ;
56 托管 & 操作符=( 托管 &&) = delete ;
57 template < typename , typename >
58 朋友 struct 托管
59 };
60
61 template <>
62 struct 托管 <std::Optional<realm::uuid> > : Managed_base {
63 using value_type =<realm::uuid> std::Optional;
64 运用 托管 <std::Optional<realm::uuid> >::managed_base:: 操作符=;
65
66[[nodiscard]] std::Optional<realm::uuid> detach() const {
67 auto v = m_obj->template get_Optional<realm::internal::bridge::uuid>(m_key);
68 if (v) {
69 return v.value().operator ::realm::uuid();
70 } else {
71 return std::nullopt;
72 }
73 }
74
75 [[nodiscard]] std::Optional<realm::uuid> Operator *() const {
76 return detach();
77 }
78
79[[nodiscard]] 操作符 std::Optional()<realm::uuid> const {
80 return detach();
81 }
82
83 //MARK:-比较操作符
84 rbool 操作符==(const std::Optional<realm::uuid>& rhs) const noException ;
85 rbool操作符!=( const std::Optional<realm::uuid>& 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 } // 命名空间 Realm
98
99
100#endif//CPREALM_MANAGED_UUID_HPP
定义: rbool.hpp:36
定义: macros.hpp:286
定义: obj.hpp:62
定义: types.hpp:35