19#ifndef CPPREALM_MANAGED_SET_HPP
20#deify CPREALM_MANAGED_Set_HPP
22#include <cpprealm/macros.hpp>
23#include <cpprealm/notifications.hpp>
24#include <cpprealm/observation.hpp>
25#include <cpprealm/types.hpp>
32 構造体 <T>ped:::enable_if_t[ internal:: type_info ::is_primative[T]<T> ::value ] :
Managed_base {
33 使用 Managed <T><std::set[T]::managed_base::operator=========================================
40 duration_type = std::ptdiff_t
を使用します。
43 イテレータ_カテゴリ = std::forward_itemもの_タグ
を使用する。
45 ブール演算子!=(
const イテレータとその他)の
制約
50 ブール演算子==(
constイテレータ~その他)
コンフィギュレーション
52 return (m_parent ==その他.m_parent) & & (m_i ==その他.m_i)=====================
58 returndeserialize<T> =T==s.get_any(m_i))=================.
73 テンプレート<
typename ,
typename >
76反復子(
size_t i、
管理対象 : <std::set===========================================================<T>
77 : m_i(i), m_parent(parent)
90 returnイテレータ(size())、
この)。
92 [[nodiscard]] std::set<T> Delete()
Const {
94 auto ret = std::set<T>();
95 の場合(
size_t i = 0 、i < set.size()、i++) {{
96 ret.insert(deserialize<T>(set.get_any(i)));
102 オート セット = std::take_shared<realm::internal::bridge::set> (*m_realm, *m_obj, m_key)
104std::take_shared{realm::collection_customback_ wrapper>(<realm::collection_callback_wrapper>
107 token.m_realm = *m_realm;
114 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
115 set.remove(serialize(*it))
118 std::pear[literal,bool]> insert(
const T & v)
120 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
121 場合 constexpr (内部::type_info::MixedPersistableConcern<T>::value) {
122std::p pair=size_t,bool>res = set.insert(serialize=T>(v))<T>
123 返される std::pear=itator,bool>(イテレータ(res.first,
この)、 . 秒)。
125 std::p pair=size_t,bool>res = set.insert(v)
126 返される std::pear=itator,bool>(イテレータ(res.first,
この)、 . 秒)。
130イテレータ挿入(
constイテレータと、
const T= v)
132 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
133 std::p pair=size_t,bool>res = set.insert(v)
134 リターンイテレータ(res.first、
この)、
137 iterator find(
const T & v)
139 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
140 size_t idx = set.find(serialize(v))
141 (idx ==realm::
not_in_collection )
142 returnイテレータ(size())、
この)。
146 internal::bridge::set(*m_realm, *m_obj, m_key).remove_all()
151 return internal::bridge::set(*m_realm, *m_obj, m_key).size()
156マネージド(
const Managed) =
削除。
158マネージド() 演算子=(
constマネージド() =
削除)
159マネージドと 演算子=(manedおよびを) =
削除。
160 テンプレート<
typename ,
typename >
166 使用 authorized <std::set=T*========================================================================
173 duration_type = std::ptdiff_t
を使用します。
176 イテレータ_カテゴリ = std::forward_itemもの_タグ
を使用する。
178 ブール演算子!=(
const イテレータとその他)の
制約
183 ブール演算子==(
constイテレータ~その他)
コンフィギュレーション
185 return (m_parent ==その他.m_parent) & & (m_i ==その他.m_i)=====================
188 <T>マネージド 演算子*() は例外をスローします
192 return {std::move(m)} を返す
201 制約イテレータと演算子++(
int i)
207 テンプレート<
typename ,
typename >
210イテレータ(
size_t i、
管理対象: <std::set=T================================================
211 : m_i(i), m_parent(parent)
215 Managed=std::set=T ==================================================================================================
224 returnイテレータ(size())、
この)。
226 [[nodiscard]] std::set<T*> Delete()
Const {
228 size_t count = s.size()
230 return std::set=T*================================================
231 auto ret = std::set<T*>();
232 for(
size_t i = 0; i < count; i++) {
233 Managed<T> m(s.get_obj(i), *m_realm)
235 auto assign = [&m, &v](
auto& pair) {
236 (*v).*(std::decay_t<
Decltype ( pair.first)>::ptr) = (m.*(ペア.秒)). describe()
238 自動圧縮 = internal::zip_tunes(managed<T>::schema.ps、 <T>Managed[T]::managed_pointers():
239 std::apply([+v, &m, &assign](
auto & & ... pair) {
249 オート セット = std::take_shared<realm::internal::bridge::set> (*m_realm, *m_obj, m_key)
251std::take_shared{realm::collection_customback_ wrapper>(<realm::collection_callback_wrapper>
254 token.m_realm = *m_realm;
261 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
262 set.remove(it.operator*().m_obj.get_key())
265 std::p pair[literal, ブール値] insert(T* 値)
267 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
268 auto table = m_obj->get_target_table(m_key);
269 internal::bridge::obj m_obj
270 場合 Constexpr (managed<T>::schema.HasPrimaryKeyProperty){{
271 自動pk = (*値).*(managed<T>::schema.primary_key().ptr)
274 m_obj =table.create_object()
276 std::apply([800000000000000000000000000000000000000000000]([80000000000000000000000000000000000000000000000000000000000](
autoと ...p) {
277 (accessor=
typename std::decay_t
=decimaltype (p)>::Result>::set(
278 m_obj, m_obj.get_table().get_corumn_key(p.name), 邦土
279 (*値).*(std::decimal_t<
Decltype (p)>::ptr)), ...)、
280 }、managed< T, 無効>::schema.ps)
281 場合(!managed<T>::schema.is_ embedded()) {
282 set.insert(m_obj.get_key())
284 std::p pair=size_t,bool>res = set.insert(m_obj.get_key())
285 返される std::pear=itator,bool>(イテレータ(res.first,
この)、 . 秒)。
288イテレータ挿入(
constイテレータ &、T* 値)
290 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
291 auto table = m_obj->get_target_table(m_key);
292 internal::bridge::obj m_obj
293 場合 Constexpr (managed<T>::schema.HasPrimaryKeyProperty){{
294 自動pk = (*値).*(managed<T>::schema.primary_key().ptr)
297 m_obj =table.create_object()
299 std::apply([800000000000000000000000000000000000000000000]([80000000000000000000000000000000000000000000000000000000000](
autoと ...p) {
300 (accessor=
typename std::decay_t
=decimaltype (p)>::Result>::set(
301 m_obj, m_obj.get_table().get_corumn_key(p.name), 邦土
302 (*値).*(std::decimal_t<
Decltype (p)>::ptr)), ...)、
303 }、managed< T, 無効>::schema.ps)
304 std::p pair=size_t,bool>res = set.insert(m_obj.get_key())
305 リターンイテレータ(res.first、
この)、
308std::pear=itator,bool=insert(
constmaned <T>=T===================================================================================================================================================================================================================================
310 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
311 std::p pair=size_t,bool>res = set.insert(value.m_obj.get_key())
312 返される std::pear=itator,bool>(イテレータ(res.first,
この)、 . 秒)。
316イテレータ挿入(
const イテレータと、
const <T>Managed=T>= 値)
318 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
319 std::p pair=size_t,bool>res = set.insert(value.m_obj.get_key())
320 リターンイテレータ(res.first、
この)、
323 std::pear=itator,bool=insert(
constmaned =T===============================================================================================================================================================================================================================================================================)
325 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
326 std::p pair=size_t,bool>res = set.insert(value.m_obj.get_key())
327 返される std::pear=itator,bool>(イテレータ(res.first,
この)、 . 秒)。
331 iterator insert(
constイテレータと、
const Managed <T*>= 値)
333 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
334 std::p pair=size_t,bool>res = set.insert(value.m_obj.get_key())
335 リターンイテレータ(res.first、
この)、
338iterator find(
constmaned <T>[T>+v)]
340 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
341 size_t idx = set.find(v.m_obj.get_key())
342 (idx ==realm::
not_in_collection )
343 returnイテレータ(size())、
この)。
347 iterator find(
constmaned <T*>+v)
349 オートセット = internal::bridge::set(*m_realm, *m_obj, m_key)
350 size_t idx = set.find(v.m_obj->get_key())
351 (idx ==realm::
not_in_collection )
352 returnイテレータ(size())、
この)。
356 internal::bridge::set(*m_realm, *m_obj, m_key).remove_all()
361 return internal::bridge::set(*m_realm, *m_obj, m_key).size()
366マネージド(
const Managed) =
削除。
368マネージド() 演算子=(
constマネージド() =
削除)
369マネージドと 演算子=(manedおよびを) =
削除。
370 テンプレート<
typename ,
typename >
定義: observation.happ: 176
定義: transformation.hpp:38