Realm C++ SDK 버전 v2.2.0

managed_uuid.hpp

1
2//
3//저작권 2022 Realm Inc.
4//
5// Apache 라이선스, 버전 2.0("라이선스")에 따라 라이선스가 부여됩니다.
6// 라이선스를 준수하는 경우를 제외하고는 이 파일을 사용할 수 없습니다.
7// 다음에서 라이선스 사본을 얻을 수 있습니다.
8//
9// http://www.apache.org/licences/LICENSE-2.0
10//
11// 관련 법률에서 요구하거나 문서로 동의하지 않는 한, 소프트웨어
12// 라이선스에 따라 배포되는 것은 '있는 그대로' 배포됩니다,
13// Express 묵시적이든 어떤 종류의 보증이나 조건도 제공하지 않습니다.
14// 권한을 관리하는 특정 언어에 대한 내용은 라이선스를 참조하세요.
15// 라이선스에 따른 제한 사항.
16//
18
19#ifndef CPPREALM_MANAGED_UUID_HPP
20#define CPPRALM_MANAGED_UUID_HPP
21
22#include <cpprealm/macros.hpp>
23#include <cpprealm/types.hpp>
24
25네임스페이스 영역 {
26 클래스 rbool;
27}
28네임스페이스 영역 {
29
30 템플릿<>
31 구조체 managed< 영역::uuid> : managed_base {
32 사용 value_type = realm::uuid;
33 사용 managed<영역::uuid>::managed_base:: 연산자=;
34
35 [[nodiscard]] realm::uuid fetch() const {
36 return m_obj-> template<realm::internal::bridge::uuid> get(m_key). 연산자 :: 영역::uuid();
37 }
38
39 [[nodiscard]] 영역::uuid 연산자 *() const {
40 return fetch();
41 }
42
43 [[nodiscard]] 연산자 realm::uuid() const {
44 return fetch();
45 }
46
47 //MARK: - 비교 연산자
48 rbool 연산자==(const 영역::uuid& rhs) const noException;
49 rbool 연산자!=(const 영역::uuid& rhs) const noException;
50
51 private:
52 managed() = 기본값;
53 managed(const managed&) = delete;
54 managed ( managed &&) = delete ;
55 managed& 연산자=(const managed&) = delete;
56 managed& 연산자=(managed&&) = delete;
57 템플릿<typename, typename>
58 친구 구조체 managed 됨 ;
59 };
60
61 템플릿<>
62 구조체 managed<std::optional<realm::uuid>> : managed_base {
63 using value_type = std::optional;<realm::uuid>
64 사용 managed<std::optional<realm::uuid>>::managed_base:: 연산자=;
65
66 [[nodiscard]] std::optional<realm::uuid> breaker() 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 } 기타 {
71 return std::nullopt;
72 }
73 }
74
75 [[nodiscard]] std::optional<realm::uuid> 연산자 *() const {
76 return fetch();
77 }
78
79 [[nodiscard]] 연산자 <realm::uuid>std::optional() const {
80 return fetch();
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 managed() = 기본값;
89 managed(const managed&) = delete;
90 managed ( managed &&) = delete ;
91 managed& 연산자=(const managed&) = delete;
92 managed& 연산자=(managed&&) = delete;
93 템플릿<typename, typename>
94 친구 구조체 managed 됨 ;
95 };
96
97} // 네임스페이스 영역
98
99
100#endif//CPPREALM_MANAGED_UUID_HPP
정의: rbool.hpp:36
정의: 매크로.hpp:286
정의: obj.hpp:62
정의: types.hpp:35