P4C
The P4 Compiler
Loading...
Searching...
No Matches
autoclone.h
1
19
#ifndef _BF_P4C_LIB_AUTOCLONE_H_
20
#define _BF_P4C_LIB_AUTOCLONE_H_
21
22
#include <memory>
23
30
template
<
class
T,
class
D = std::default_delete<T>>
31
class
autoclone_ptr
:
public
std::unique_ptr<T, D> {
32
public
:
33
autoclone_ptr
() =
default
;
34
autoclone_ptr
(
autoclone_ptr
&&) =
default
;
35
autoclone_ptr
&operator=(
autoclone_ptr
&&) =
default
;
36
autoclone_ptr
(
const
autoclone_ptr
&a) : std::unique_ptr<T, D>(a ? a->clone() :
nullptr
) {}
37
autoclone_ptr
&operator=(
const
autoclone_ptr
&a) {
38
auto
*t = a.get();
39
this->reset(t ? t->clone() :
nullptr
);
40
return
*
this
;
41
}
42
};
43
44
#endif
/* _BF_P4C_LIB_AUTOCLONE_H_ */
autoclone_ptr
Definition
autoclone.h:31
backends
tofino
bf-p4c
lib
autoclone.h
Generated by
1.12.0