Realm C++ SDKバージョン v 2.2.0

Managed_string.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// 該当するルールによって要求されたり、書込み (write) で同意された場合を除き、ソフトウェア
12ライセンスに基づいて配布される // は "AS IS" CRUD で配布されるため、
13// 任意の種類の 保証 または 条件なし(式またはExpressのいずれか)。
14// 特定の言語を使用する権限については、「ライセンス」を参照してください
15ライセンスに基づく // の制限。
16//
18
19#ifndef CPPREALM_MANAGED_STRING_HPP
20#dedefined CPREALM_MANAGED_STRING_HPP
21
22#include <cpprealm/macros.hpp>
23
24名前空間邦土 {
25 クラスrbool 。
26 }
27
28名前空間邦土 {
29 //Mask: - チャート参照
30 構造体 char_reference {
31 char_reference & 演算子 =( char c)。
32 private :
33 char_reference ( Managed <std::string> *親、 size_t IDx)
34 テンプレート < typename , typename > name の 詳細
35 友人 構造体 char_pointer :
37 size_t m_idx
38 };
39 //Mask: - 定数チャート参照
41 演算子Chart() Const//NOLINT(google-explit-structor)
42 private :
43 const_char_referenceconst Managed <std::string> *親、 size_t idx)。
44 テンプレート < typename , typename > name の 詳細
45 友人 構造体 context_char_pointer
46 制約 Managed <std::string> * m_親
47 size_t m_idx
48 };
49 //Mask: - 文字のポインター
50 構造体 char_pointer {
51 char_reference演算子 []( size_t idx)
52 private :
53 explicit char_pointer ( Managed <std::string> * 親)
54 テンプレート < typename , typename > name の 詳細
56 };
57 //Mask: - 定数チャートポイント
59 const_char_reference演算子 []( size_t idx) const
60 private :
61 explicit const_char_pointer ( const Managed <std::string> *親)。
62 テンプレート < typename , typename > name の 詳細
63 制約 Managed <std::string> * m_親
64 };
65
66 //Mask: - マネージド string
67 テンプレート<> struct Managed <std::string> : Managed_base {
68 value_type = std::stringを使用します。
69 使用 Managed <std::string>::managed_base::managed_base
70 使用 ped<std::string> ::string>::managed_base::operator======================================================
71
72 [[ nodiscard ]] std::string Delete() Const 。
73
74 使用 参照= char_reference
76
77 マネージド & 演算子 =(std::string+v) { set(std::move(v)){set(std::move(v))。 この を 返し ます。 }
78 マネージド & 演算子 =( const std::string+ v) { set(v)} この を 返し ます。 }
79 マネージド & 演算子 =( const char * v) {set(v)} この を 返し ます。 }
80
81 //Mask: - 要素アクセス
83 reference at( size_t idx)
85 参照演算子[]( size_t idx)。
86
88 [[nodiscard]] const_referenceフロント() const
89 参照先()
91 [[nodiscard]] const_referenceback () const
92 referenceback ()。
94 char_pointer data()
95 [[nodiscard]] const_char_pointer data() const
96
98 [[nodiscard]] const_char_pointer c_str() const
99
101 演算子std:: string_view () connect = delete
102 演算子std::string() Const
103
104
105 [[nodiscard]] size_t size() は例外をスローします。
106 //Mask: - 操作
107 id clear() noExceptionを処理します。
108 無効push_back ( cursor c):
110 Managed & append(const std:: string &):
112 Managed & 演算子+=(const std:: string &)=(const std:: string &):
114 無効なpop_back()。
115
116 //Mask: - 比較演算子
117 rbool演算子==(const std:: string &rhs)const noException が発生する
118 rbool演算子==(const char * rhs) Const noException が含まれる
119 rbool演算子!=(const std:: string &rhs) は no例外をスローします。
120 rbool演算子!=(const cursor * rhs)は 次の要素を含まない:
121 rbool containers (const std:: string &s、 bool case_strict =true)const noException が含まれます
122 rbool empty() は例外をスローします。
123 private:
126 無効インラインセット(const std:: string & v){{m_obj->template set<std::string>(m_key, v) }
127 [[nodiscard]]インラインstd::string get() const { return m_obj->get<std::string>(m_key) }
128マネージド() =デフォルト
129マネージド( const Managed) =削除
130マネージド(マネージド & )=削除
131マネージド() 演算子=( constマネージド() =削除)
132マネージドと 演算子=(manedおよびを) =削除
133 テンプレート< typename , typename >
134 友人 構造体管理。
135 };
136
137 template <> struct managed<std::optional<std::string>> final : public managed<std::string> {
138 value_type = std::optional[std::string]><std::string> を使用します。
139 使用 Managed <std::string>::operator=:
140 マネージド & 演算子 =(std::optional=std::string==========================================================================================<std::string> この を 返し ます。 }
141 マネージド & 演算子 =( const std::optional=std::string=================================================<std::string> この を 返し ます。 }
142 マネージド & 演算子 =( const char * v) {set(v)} この を 返し ます。 }
143
144[[nodiscard]]<std::string> std::optional[std::string]デタッチし() const {{
145 return m_obj->template get_optional<std::string>(m_key);
146 }
147
148[[nodiscard]] std::optional[std::string]><std::string> 演算子 *() const {
149 return detach();
150 }
151
152[[nodiscard]] 演算子 <std::string>std::optional{std::string>() const {
153 return detach();
154 }
155
156 rbool Operator==( const std::optional<std::string> = std::string ===================================================================
157 rbool演算子!=( const <std::string>ください
158 private :
159 void インライン セット( const <std::string>std::optional{std::string>+ v) {m_obj->template set=std::optional=std::string==========================================================<std::string> }
160 マネージド()=デフォルト
161 マネージドconst administrators =削除
162 マネージドマネージド& )= delete
163 Managed & 演算子=( constマネージド&) = delete
164 Managed & 演算子=(マネージド&と) = delete
165 テンプレート< typename , typename >
166 友人 構造体 マネージド
167 };
168 }
169
170#endif //CPREALM_MANAGED_STRING_HPP
定義: rbool.hpp:36
定義: Managed_string.happ: 50
定義: Managed_string.happ: 30
定義: Managed_string.happ: 58
定義: Managed_string.happ: 40
定義: Managed_string.happ: 67
定義: caches.hpp:286
Definition: obj.hpp:62