Realm C++ SDK Versão C++ v2.2.0

managed_uuid.hpp

1
2//
3// Autores 2022 Realm Inc.
4//
5// Licenciado sob a Licença Apache, Versão 2.0 (a "Licença");
6// você não pode usar este arquivo, exceto em conformidade com a Licença.
7// Você pode obter uma cópia da Licença em
8//
9// http://www.apache.org/license/LICENSE-2.0
10//
11// A menos que exigido pela lei aplicável ou acordado por escrito, o software
12// distribuído sob a Licença é distribuído "Como está",
13// sem garantias ou condições de qualquer tipo, Express ou implícitas.
14// Consulte a Licença para obter as permissões específicas de domínio do idioma e
15// limitações da Licença.
16//
18
19#ifndef CPPREALM_MANAGED_UUID_HPP
20#define CPPREALM_MANAGED_UUID_HPP
21
22#include <cprealm/macros.hpp>
23#include <cprealm/types.hpp>
24
25namespace Realm {
26 classe rbool;
27}
28namespace Realm {
29
30 modelo<>
31 estrutura, estrutura managed< Realm::uuid> : managed_base {
32 Usando value_type = realm::uuid;
33 Usando managed<Realm::uuid>::managed_base::operator=;
34
35 [[nodiscard]] realm::uuid detach() const {
36 return m_obj->template get<realm::internal::bridge::uuid>(m_key).operator :: Realm::uuid();
37 }
38
39 [[nodiscard]] Realm::uuid operator *() const {
40 return desvincular();
41 }
42
43 [[nodiscard]] operador realm::uuid() const {
44 return desvincular();
45 }
46
47 //Marca: - operadores de comparação
48 rbool operator==(const Realm::uuid& rhs) const noexceto;
49 operador rbool !=(const Realm::uuid& rhs) const noexceto;
50
51 privado:
52 managed() = default;
53 managed(const managed&) = delete;
54 managed(managed &&) = delete;
55 managed& operator=(const managed&) = delete;
56 managed& operator=(managed&&) = delete;
57 modelo<typename, typename>
58 amigo estrutura, estrutura managed;
59 };
60
61 modelo<>
62 estrutura, estrutura managed<std::optional<realm::uuid>> : managed_base {
63 usando value_type = std::opcional<realm::uuid>;
64 Usando <std::opcional <<realm::uuid>Realm gerenciado ::uuid>>::managed_base::operator=;
65
66 [[nodiscard]] std::optional<realm::uuid> detach() const {
67 auto v = m_obj->template get_optional<realm::internal::bridge::uuid>(m_key);
68 se (v) {
69 return v.value().operator ::realm::uuid();
70 } mais {
71 return std::nullopt;
72 }
73 }
74
75 [[nodiscard]] std::opcional<realm::uuid> operador *() const {
76 return desvincular();
77 }
78
79 [[nodiscard]] operator std::optional<realm::uuid>() const {
80 return desvincular();
81 }
82
83 //Marca: - operadores de comparação
84 rbool operator==(const std::opcional<realm::uuid>& rhs) const noexceto;
85 operador rbool !=(const std::optional<realm::uuid>& rhs) const noexceto;
86
87 privado:
88 managed() = default;
89 managed(const managed&) = delete;
90 managed(managed &&) = delete;
91 managed& operator=(const managed&) = delete;
92 managed& operator=(managed&&) = delete;
93 modelo<typename, typename>
94 amigo estrutura, estrutura managed;
95 };
96
97} // namespace realm
98
99
100#endif//CPPrealm_MANAGED_UUID_HPP
Definição: rbool.hpp:36
Definição: macros.hpp:286
Definição: obj.hpp:62
Definição: tipos.hpp:35