Realm C++ SDK 버전 v2.2.0

managed_decimal.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_DECIMAL_HPP
20#define CPPRALM_MANAGED_DECIMAL_HPP
21
22#include <cpprealm/macros.hpp>
23#include <cpprealm/types.hpp>
24
25#include <cpprealm/internal/bridge/decimal128.hpp>
26
27네임스페이스 영역 {
28 클래스 rbool;
29}
30
31네임스페이스 영역 {
32 템플릿<>
33 구조체 관리되는<realm::decimal128> : managed_base {
34 사용 managed<영역::decimal128>::managed_base:: 연산자=;
35 [[nodiscard]] 영역::decimal128 fetch() const {
36 return m_obj-> template get<realm::internal::bridge::decimal128>(m_key).operator ::realm::decimal128();
37 }
38
39 [[nodiscard]] 영역::decimal128 연산자 *() const {
40 return fetch();
41 }
42
43 [[nodiscard]] 연산자 영역::decimal128 () const {
44 return fetch();
45 }
46
47 rbool operator==(const decimal128& rhs) const noException;
48 rbool 연산자!=(const 10진수128& rhs) const noException;
49 rbool 연산자>(const decimal128& rhs) const noException;
50 rbool 연산자<(const decimal128& rhs) const noException;
51 rbool 연산자>=(const decimal128& rhs) const noException;
52 rbool 연산자<=(const decimal128& rhs) const noException;
53 십진수128 연산자+(const 십진수128& o);
54 십진수128 연산자-(const decimal128& o);
55 decimal128 operator*(const decimal128& o);
56 십진수128 연산자/(const 십진수128& o);
57
58 managed< 영역::decimal128>& operator+=(const decimal128& o);
59 managed<realm::decimal128>& 연산자-=(const decimal128& o);
60 managed< 영역::decimal128>& 연산자*=(const decimal128& o);
61 managed< 영역::decimal128>& 연산자/=(const decimal128& o);
62
63 private:
64 managed() = 기본값;
65 managed(const managed&) = delete;
66 managed ( managed &&) = delete ;
67 managed& 연산자=(const managed&) = delete;
68 managed& 연산자=(managed&&) = delete;
69 템플릿<typename, typename>
70 친구 구조체 managed 됨 ;
71 };
72
73 템플릿<>
74 구조체 managed<std::optional< 영역::decimal128>> : managed_base {
75 사용 managed<std::optional< 영역::decimal128>>::managed_base:: 연산자=;
76
77 [[nodiscard]] std::optional<realm::decimal128> fetch() const {
78 auto v = m_obj-> Template get_optional<realm::internal::bridge::decimal128>(m_key);
79 if (v) {
80 v.value()를 반환 합니다. 연산자 :: 영역::decimal128();
81 } 기타 {
82 return std::nullopt;
83 }
84 }
85
86 [[nodiscard]] std::optional< 영역::decimal128> 연산자 *() const {
87 return fetch();
88 }
89
90 [[nodiscard]] 연산자 std::optional< 영역::decimal128>() const {
91 return fetch();
92 }
93
94 rbool 연산자==(const std::optional< 영역::decimal128>& rhs) const noException;
95 rbool 연산자!=(const std::optional<realm::decimal128>& rhs) const noexcept;
96 rbool 연산자>(const std::optional< 영역::decimal128>& rhs) const noException;
97 rbool 연산자<(const std::optional< 영역::decimal128>& rhs) const noException;
98 rbool 연산자>=(const std::optional< 영역::decimal128>& rhs) const noException;
99 rbool 연산자<=(const std::optional< 영역::decimal128>& rhs) const noException;
100 십진수128 연산자+(const 십진수128& o);
101 십진수128 연산자-(const decimal128& o);
102 decimal128 operator*(const decimal128& o);
103 십진수128 연산자/(const 십진수128& o);
104
109
110 private:
111 managed() = 기본값;
112 managed(const managed&) = delete;
113 managed ( managed &&) = delete ;
114 managed& 연산자=(const managed&) = delete;
115 managed& 연산자=(managed&&) = delete;
116 템플릿<typename, typename>
117 친구 구조체 managed 됨 ;
118 };
119
120} // 네임스페이스 영역
121
122#endif //CPPREALM_MANAGED_DECIMAL_HPP
정의: rbool.hpp:36
정의: types.hpp:75
정의: managed_decimal.hpp:33
정의: 매크로.hpp:286
정의: obj.hpp:62