19#ifndef CPPREALM_MANAGED_NUMERIC_HPP
20#dedefined CPREALM_MANAGED_NUMERI_HPP
22#include <cpprealm/macros.hpp>
23#include <cpprealm/rbool.hpp>
28 使用 Managed <int 64 _t>::maned_base::operator==============================================================
30 マネージド_ベースと演算子 =(
const int 64 _t=v) {
31 This->m_obj->template set<int 64 _t>(m_key,v)
35 [[nodiscard]] int64_t detach()
const {
36 return m_obj->template get<int64_t>(m_key)
39 [[nodiscard]] int 64 _t 演算子 *()
const {
43 [[nodiscard]]
演算子int 64 _t()
const {
48std:: enable_if_t<T> = std:: is_integral_v
=======================================================================================
49 場合(この ->m_rbool_query){
50 この->m_rbool_query->equal(m_key,(int 64 _rhs) を
返します。
52 return Serialize() ==rhs。
56std:: enable_if_t =std:: is_integral_v<T>
=====================================================================
T+
rhs ) は {
の例外をスローします。
57 場合(この ->m_rbool_query){
58 次を
返します->m_rbool_query->not_等価(m_key,(int 64 _rhs))
60 return Serialize(Delete()) バージョン .= rhs。
64std:: enable_if_t = std:: is_integral_v ========================================================================<T>
65 場合(この ->m_rbool_query){
66 この->m_rbool_query->greater(m_key, (int 64 _rhs) を
返します。
68 return Serialize(Delete()) >rhs。
72std:: enable_if_t = std:: is_integral_v ========================================================================<T>
73 場合(この ->m_rbool_query){
74 この->m_rbool_query->less(m_key,(int 64 _t)rhs) を
返します。
76 return Serialize(Delete()) <rhs。
80std:: enable_if_t = std:: is_integral_v ============================================================================<T>
81 場合(この ->m_rbool_query){
82 この->m_rbool_query->greater_equal(m_key,(int 64 _t)rhs) を
返します。
84 return Serialize(Delete()) >=rhs。
88std:: enable_if_t<T> = std:: is_integral_v
===========================================================================
89 場合(この ->m_rbool_query){
90 これを
返すには、->m_rbool_query->less_equal(m_key,(int 64 _rhs) を参照してください。
92 return Serialize(Delete()) <= rhs。
95 Managed & 演算子+=(
const int 64 _t=o) {
96 auto_val = m_obj->template get<int 64 _t>(m_key)
97 m_obj->template set<int 64 _t>(この->m_key, old_val +o)
101 auto_val = m_obj->template get<int 64 _t>(m_key)
102 m_obj->template set<int 64 _t>(この->m_key, old_val + 1 )
105 auto_val = m_obj->template get<int 64 _t>(m_key)
106 m_obj->template set<int 64 _t>(この->m_key, old_val + 1 )
108 マネージド& 演算子-=(
const int 64 _t=o) {
109 auto_val = m_obj->template get<int 64 _t>(m_key)
110 m_obj->template set<int 64 _t>(search->m_key, old_val-o)
114 auto_val = m_obj->template get<int 64 _t>(m_key)
115 m_obj->template set<int 64 _t>(search->m_key, old_val- 1 )
118 auto_val = m_obj->template get<int 64 _t>(m_key)
119 m_obj->template set<int 64 _t>(search->m_key, old_val- 1 )
121 マネージド& 演算子*=(
const int 64 _t=o) {
122 auto_val = m_obj->template get<int 64 _t>(m_key)
123 m_obj->template set<int 64 _t>(この->m_key, old_val * op)
129 マネージド(
const administrators ) =
削除。
133 テンプレート<
typename ,
typename >
139 使用 authorized <
double >:: maned_base ::operator============================================
141 マネージド_ベースと演算子 =(
const double & v) {
142この ->m_obj->template set<double>(m_key, v)
147この->m_obj->template<double> set=double>(m_key,(
double )v)
151[[ nodiscard ]]
double Delete()
Const {
152 return m_obj->template get<double>(m_key) を返します。
158 [[nodiscard]]
演算子double()
const {
163std::enable_if_t<<T> <T>std::disjortion_v[std::is_integral[T]>、std::is_floating_point[T]]、
rbool > 演算子==(
const T+rhs)
const noException {{
164 場合(この ->m_rbool_query){
165 この->m_rbool_query->equal(m_key,(
double )rhs)を 返し ます。
167 return Serialize() ==rhs。
171std::enable_if_t< std::disjortion_v[std::is_integral[T]],<T> std::is_floating_point[T][] を含む、<T>
rbool > 演算子 !=(
constT+
rhs ) は {
の例外をスローします。
172 場合(この ->m_rbool_query){
173 この->m_rbool_query->not_等価(m_key,(
double )rhs)を 返し ます。
175 return Serialize(Delete()) バージョン .= rhs。
179std::enable_if_t<<T> std::disjortion_v[std::is_integral[T]]、std::is_floating_point[T][]、<T>
rbool > 演算子>(
const T+rhs)
const は例外を除きます。
180 場合(この ->m_rbool_query){
181 この->m_rbool_query->greater(m_key,(
double )rhs)を 返し ます。
183 return Serialize(Delete()) >rhs。
187std::enable_if_t<<T> <T>std::disjortion_v[std::is_integral[T]>、std::is_floating_point[T]]、
rbool > 演算子[(
const T+rhs)
const 以外 ({{
188 場合(この ->m_rbool_query){
189 この->m_rbool_query->less(m_key,(
double )rhs)を 返し ます。
191 return Serialize(Delete()) <rhs。
195std::enable_if_t<<T> std::disjortion_v[std::is_integral[T]]、std::is_floating_point[T][]、<T>
rbool > 演算子>=(
const T+rhs)
const noException {{
196 場合(この ->m_rbool_query){
197 この->m_rbool_query->greater_equal(m_key,(
double )rhs)を 返し ます。
199 return Serialize(Delete()) >=rhs。
203std::enable_if_t<<T> std::disjortion_v[std::is_integral[T]]、std::is_floating_point[T][]、<T>
rbool > 演算子==(
const T+rhs)
const noException {{
204 場合(この ->m_rbool_query){
205 この上を
返します ->m_rbool_query->less_equal(m_key,(
double )rhs)
207 return Serialize(Delete()) <= rhs。
210 無効演算子+=(
const double & op) {
211 auto_val = m_obj->template<double> get=double>(m_key)
212m_obj->template<double> set=double>(この->m_key、 old_val +o)
215 auto_val = m_obj->template<double> get=double>(m_key)
216m_obj->template<double> set=double>(この->m_key, old_val +1.0 )
219 auto_val = m_obj->template<double> get=double>(m_key)
220m_obj->template<double> set=double>(この->m_key, old_val +1.0 )
222 無効演算子-=(
const double & op) {
223 auto_val = m_obj->template<double> get=double>(m_key)
224 m_obj->template set<double>(この->m_key、 old_val -o)
227 auto_val = m_obj->template<double> get=double>(m_key)
228m_obj->template<double> set=double>(この->m_key、 old_val -1.0 )
231 auto_val = m_obj->template<double> get=double>(m_key)
232m_obj->template<double> set=double>(この->m_key、 old_val -1.0 )
234 無効演算子 *=(
const double & O) {
235 auto_val = m_obj->template<double> get=double>(m_key)
236m_obj->template<double> set=double>(この->m_key, old_val * op)
241 マネージド(
const administrators ) =
削除。
245 テンプレート<
typename ,
typename >
251 使用 authorized <
bool >:: maned_base ::operator===================================================================
253 [[nodiscard]]
ブール値デタッチ()
const {
254 return m_obj->template get<bool>(m_key) を返します。
256 [[nodiscard]]
演算子bool()
const {
263 rbool 演算子==( constbool &rhs)
const は 以外 の 条件
に一致し ます。
264 rbool演算子!=(
const ブール値と
rhs )は 以外の値ではあり
ません。
268 マネージド(
const administrators ) =
削除。
272 テンプレート<
typename ,
typename >
276CPP_REALM_MANAGED_OPTIONAL_NUMELIC(type) を定義します\
278 structmanded=std::optional=type===================================================<type>
279 <type>を使用する::maned_base::operator================================================================= $
281 Managed <std::optional=type===================================================<type>
282 この->m_obj->template set<type>(m_key, v) $
286 Managed=std::optional=type==================================================================<type>
287 この->m_obj->template<type> set=type>(m_key, (double)v) $
291 [[nodiscard]] std::optional[type]<type> Delete()const{\
292 return m_obj->get_optional<type>(m_key); \
295 [[nodiscard]] std::optional[type]<type> 演算子 *()const {\
298 [[nodiscard]] 演算子 std::optional[type]() 演算子<type> {\
301 rbool Operator==(const std::optional=type========================================================================================= $<type>
302 rbool 演算子!=(const <type>ください。 $
303 無効演算子+=(const type & op) {\
304 auto_val = m_obj->get_optional<type>(m_key) $
306スロー std::runtime_error("null 値に対して算術演算を実行できません。" ) $
308m_obj->template<type> set=type>(この->m_key, (* old_val) + op) $
311auto old_val = m_obj->get_optional[type](m_key) $<type>
313 slow std::runtime_error("null 値で算術演算を実行できません。") $
315m_obj->template<type> set=type>(この->m_key, (* old_val) +1 ) $
317無効演算子-=(const type & op) {\
318auto old_val = m_obj->get_optional[type](m_key) $<type>
320 slow std::runtime_error("null 値で算術演算を実行できません。") $
322m_obj->template<type> set=type>(この->m_key, (* old_val) - op) $
325auto old_val = m_obj->get_optional[type](m_key) $<type>
327 slow std::runtime_error("null 値で算術演算を実行できません。") $
329 m_obj->template set<type>(この->m_key, (* old_val) - 1 ) $
331無効演算子*=(const type+o){{\
332auto old_val = m_obj->get_optional[type](m_key) $<type>
334 slow std::runtime_error("null 値で算術演算を実行できません。") $
336m_obj->template<type> set=type>(この->m_key, (* old_val) * op) $
338無効演算子*(const type & op){{\
339auto old_val = m_obj->get_optional[type](m_key) $<type>
341 slow std::runtime_error("null 値で算術演算を実行できません。") $
343m_obj->template<type> set=type>(この->m_key, (* old_val) * op) $
345 valid Operator/(const type & op) {\
346auto old_val = m_obj->get_optional[type](m_key) $<type>
348 slow std::runtime_error("null 値で算術演算を実行できません。") $
350 m_obj->template set<type>(この->m_key, (* old_val) / op) $
354マネージド(constpedmanと)=delete $
355マネージド(マネージド & ) = 削除。 $
356マネージド() 演算子=(const マネージド() = 削除) $
357マネージドと 演算子=(manedおよびを) =削除。 $
358 template<typename, typename> \
362 CPP_REALM_MANAGED_OPTIONAL_NUMERI(int 64 _t)
363 CCP_REALM_MANAGED_OPTIONAL_NUMBERプライマリ(
double )
366 構造体 Managed <std:: optional =bool================================================<bool>
367 使用 Managed <std::optional=bool=================================================================<bool>
369[[nodiscard]] std::optional[bool]><bool> Delete()
const {
370 return m_obj->template get_optional<bool>(m_key);
373[[nodiscard]]
演算子 std::optional=bool>()<bool>
const {
374 return m_obj->template get_optional<bool>(m_key);
377std::optional[]<bool> 演算子 *()
Const {
381 rbool Operator==(
const std::optional<bool>
= bool ===============================================================================
382 rbool演算子!=(
const std::optional<bool> =
bool ===========================================
386 マネージド(
const administrators ) =
削除。
390 テンプレート<
typename ,
typename >
395 構造体 authorized <T, std:: enable_if_t =std:: is_enum_v<T> ================================================
397 m_obj->template set<int 64 _t>(m_key,
static_ Cast < int 64 _t
> (v))
401 [[
nodiscard ]] T Delete() Const {
402 return 静的_ Cast_ T
> (m_obj->get_int 64 _t>(m_key))。
405 [[
nodiscard ]] T 演算子 *() 制約 {
409 [[nodiscard]]
演算子T()
const {
414 rbool演算子==(
const T{rhs) は { の
例外をスローします。
415 場合(この ->m_rbool_query){
416 この上を
返します ->m_rbool_query->equal(m_key、serialize(rhs))。
418 return detach() == rhs;
420 rbool演算子!=(
const T+
rhs )
は{
421 場合(この ->m_rbool_query){
422 これを
返すには、->m_rbool_query->not_等価(m_key、serialize(rhs))を返します。
424 return detach() != rhs;
426 rbool 演算子>(
const T {rhs)
は { を
427 場合(この ->m_rbool_query){
428 この->m_rbool_query->greater(m_key、serialize(rhs))を
返します。
430 return detach() > rhs;
432 rbool 演算子
未満( const T
433 場合(この ->m_rbool_query){
434 この->m_rbool_query->greater(m_key、serialize(rhs))を
返します。
436 return delete() <rhs。
438 rbool演算子>=(
const T+rhs)
const noException {
439 場合(この ->m_rbool_query){
440 この上を
返します ->m_rbool_query->greater_equal(m_key、serialize(rhs))
442 return detach() >= rhs;
444 rbool 演算子 == (
const T=rhs)
=======================================================================
445 場合(この ->m_rbool_query){
446 これを
返すには、->m_rbool_query->less_equal(m_key、serialize(rhs))を参照してください。
448 return Delete() <= rhs。
453 マネージド(
const administrators ) =
削除。
457 テンプレート<
typename ,
typename >
462 構造体 Managed <std::optional=T>,<T> std:: enable_if_t =std:: is_enum_v ==========================================================<T>
465 m_obj- > template set=std::optional=int 64 64 ======================================================================================
467 m_obj->set_null(m_key);
472[[nodiscard]] std::optional[T]<T> Delete()
const {
473 の
場合(
auto v = m_obj->get_optional{int 64 _t>(m_key)) {
474 return 静的_キャスト_T > (*v):
479[[nodiscard]] std::optional[T]<T> 演算子 *()
const {
483[[ nodiscard ]]
演算子 std::optional[T]()<T>
演算子 {
488 rbool 演算子==( const std:: optional<T>
==================================================================================
489 場合(この ->m_rbool_query){
490 この上を
返します ->m_rbool_query->equal(m_key、serialize(rhs))。
492 return detach() == rhs;
494 rbool演算子!=(
const std::optional<T> + rhs
){{
495 場合(この ->m_rbool_query){
496 これを
返すには、->m_rbool_query->not_等価(m_key、serialize(rhs))を返します。
498 return detach() != rhs;
500 rbool 演算子>(
const T {rhs)
は { を
501 場合(この ->m_rbool_query){
502 この->m_rbool_query->greater(m_key、rhs) を
返します。
504 return detach() > rhs;
506 rbool 演算子
未満( const T
507 場合(この ->m_rbool_query){
508 これを
返すには、->m_rbool_query->less(m_key、rhs)を返します。
510 return delete() <rhs。
512 rbool演算子>=(
const T+rhs)
const noException {
513 場合(この ->m_rbool_query){
514 これを
返すには、->m_rbool_query->greater_equal(m_key、rhs) を返します。
516 return detach() >= rhs;
518 rbool 演算子 == (
const T=rhs)
=======================================================================
519 場合(この ->m_rbool_query){
520 これを
返すには、->m_rbool_query->less_equal(m_key、rhs)を返します。
522 return Delete() <= rhs。
527 マネージド(
const administrators ) =
削除。
531 テンプレート<
typename ,
typename >