HEaaN
Crypto Lab's great homomorphic encryption library
include
HEaaN
Pointer.hpp
Go to the documentation of this file.
1
// //
3
// Copyright (C) 2021-2023 Crypto Lab Inc. //
4
// //
5
// - This file is part of HEaaN homomorphic encryption library. //
6
// - HEaaN cannot be copied and/or distributed without the express permission //
7
// of Crypto Lab Inc. //
8
// //
10
11
#pragma once
12
13
#include "
HEaaN/HEaaNExport.hpp
"
14
#include <memory>
15
16
namespace
HEaaN
{
23
template
<
class
T>
class
HEAAN_API
Pointer
{
24
25
private
:
26
std::unique_ptr<T>
ptr_
;
27
28
public
:
29
template
<
class
... U>
Pointer
(U &&...args);
30
31
~
Pointer
();
32
33
Pointer
(
Pointer
const
&other);
34
Pointer
(
Pointer
&&other) noexcept;
35
36
Pointer
&operator=(
const
Pointer
&other);
37
Pointer
&operator=(
Pointer
&&other) noexcept;
38
39
T &operator*();
40
T *operator->();
41
42
T
const
&operator*()
const
;
43
T
const
*operator->()
const
;
44
};
45
46
class
PlaintextImpl;
47
extern
template
class
HEAAN_API
Pointer<PlaintextImpl>
;
48
49
class
CiphertextImpl;
50
extern
template
class
HEAAN_API
Pointer<CiphertextImpl>
;
51
52
class
MessageImpl;
53
extern
template
class
HEAAN_API
Pointer<MessageImpl>
;
54
55
class
SecretKeyImpl;
56
extern
template
class
HEAAN_API
Pointer<SecretKeyImpl>
;
57
58
class
CollectiveKeyGenDataImpl;
59
extern
template
class
HEAAN_API
Pointer<CollectiveKeyGenDataImpl>
;
60
61
}
// namespace HEaaN
HEaaN::Pointer
A class holding unique_ptr but is copied with deepcopy.
Definition:
Pointer.hpp:23
HEaaN::Pointer::ptr_
std::unique_ptr< T > ptr_
Definition:
Pointer.hpp:26
HEaaNExport.hpp
HEAAN_API
#define HEAAN_API
Definition:
HEaaNExport.hpp:26
HEaaN
Definition:
Bootstrapper.hpp:16
Generated by
1.8.17