Realm C++ SDK 버전 v2.2.0

managed_objectid.hpp

1
2//
3//저작권 2024 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_OBJECTID_HPP
20#define CPPREALM_MANAGED_OBJECTID_HPP
21
22#include <cpprealm/macros.hpp>
23#include <cpprealm/types.hpp>
24
25#include <cpprealm/internal/bridge/object_id.hpp>
26
27네임스페이스 영역 {
28 클래스 rbool;
29}
30
31네임스페이스 영역 {
32 템플릿<>
33 구조체 managed< 영역::object_id> : managed_base {
34 사용 관리되는<realm::object_id>::managed_base::operator=;
35 [[nodiscard]] realm::object_id fetch() const {
36 return m_obj-> template<realm::internal::bridge::object_id> get(m_key). 연산자 :: 영역::object_id();
37 }
38
39 [[nodiscard]] realm::object_id 연산자 *() const {
40 return fetch();
41 }
42
43 [[nodiscard]] 연산자 영역::object_id() const {
44 return fetch();
45 }
46
47 //MARK: - 비교 연산자
48 rbool 연산자==(const Realm 객체& rhs) const noException;
49 rbool 연산자!=(const Realm 객체& 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::object_id>> : managed_base {
63 사용 managed<std::optional<realm::object_id>>::managed_base:: 연산자=;
64
65 [[nodiscard]] std::optional<realm::object_id> readable() const {
66 auto v = m_obj-> Template<realm::internal::bridge::object_id> get_optional(m_key);
67 if (v) {
68 v.value()를 반환 합니다. 연산자 :: 영역::object_id();
69 } 기타 {
70 return std::nullopt;
71 }
72 }
73
74 [[nodiscard]] std::optional<realm::object_id> 연산자 *() const {
75 return fetch();
76 }
77
78 [[nodiscard]] 연산자 <realm::object_id>std::optional() const {
79 return fetch();
80 }
81
82 //MARK: - 비교 연산자
83 rbool 연산자==(const std::Optional<realm::object_id>& rhs) const noException;
84 rbool 연산자!=(const std::Optional<realm::object_id>& rhs) const noException;
85
86 private:
87 managed() = 기본값;
88 managed(const managed&) = delete;
89 managed ( managed &&) = delete ;
90 managed& 연산자=(const managed&) = delete;
91 managed& 연산자=(managed&&) = delete;
92 템플릿<typename, typename>
93 친구 구조체 managed 됨 ;
94 };
95
96} // 네임스페이스 영역
97
98#endif//CPPREALM_MANAGED_OBJECTID_HPP
정의: rbool.hpp:36
정의: 매크로.hpp:286
정의: obj.hpp:62
정의: types.hpp:56