alpaqa
1.0.0a16
Nonconvex constrained optimization
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
i
j
l
m
n
o
p
r
s
t
u
v
w
Functions
a
b
c
d
e
f
g
i
j
l
m
n
o
p
r
s
t
u
w
Variables
Typedefs
a
c
d
e
f
i
l
m
p
r
s
t
u
v
Enumerations
Concepts
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
û
ŷ
α
γ
δ
ε
λ
ρ
σ
τ
φ
ψ
ϵ
Functions
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
û
α
ρ
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
ŷ
α
γ
δ
ε
λ
ρ
σ
τ
φ
ψ
ϵ
Typedefs
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
v
w
Enumerations
Enumerator
a
f
i
s
u
Related Symbols
Files
File List
File Members
All
a
c
d
e
f
g
l
m
p
r
s
t
u
w
Functions
a
c
d
e
f
g
l
m
p
r
s
t
w
Variables
Typedefs
Enumerations
Enumerator
Macros
a
c
e
p
u
Examples
Sphinx
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Concepts
Loading...
Searching...
No Matches
src
alpaqa
include
alpaqa
util
copyable_unique_ptr.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <memory>
4
5
namespace
alpaqa::util
{
6
7
template
<
class
T>
8
struct
copyable_unique_ptr
{
9
copyable_unique_ptr
(std::unique_ptr<T>
ptr
) :
ptr
{std::move(
ptr
)} {}
10
copyable_unique_ptr
() =
default
;
11
copyable_unique_ptr
(
const
copyable_unique_ptr
&
o
)
12
:
ptr
{
o
.
ptr
? std::
make_unique
<
T
>(*
o
.
ptr
) :
nullptr
} {}
11
copyable_unique_ptr
(
const
copyable_unique_ptr
&
o
) {
…
}
13
copyable_unique_ptr
&
operator=
(
const
copyable_unique_ptr
&
o
) {
14
this->
ptr
= o.
ptr
? std::make_unique<T>(*
o
.ptr) :
nullptr
;
15
return
*
this
;
16
}
13
copyable_unique_ptr
&
operator=
(
const
copyable_unique_ptr
&
o
) {
…
}
17
copyable_unique_ptr
(
copyable_unique_ptr
&&)
noexcept
=
default
;
18
copyable_unique_ptr
&
operator
=(
copyable_unique_ptr
&&)
noexcept
=
default
;
19
20
operator
std::
unique_ptr
<
T
> &() & {
return
ptr
; }
21
operator
const
std::unique_ptr<T> &()
const
& {
return
ptr
; }
22
operator
std::unique_ptr<T> &&() && {
return
std::move(
ptr
); }
23
24
std::unique_ptr<T> &
operator->
() {
return
ptr
; }
25
const
std::unique_ptr<T> &
operator->
()
const
{
return
ptr
; }
26
auto
&
operator*
() {
return
*
ptr
; }
27
auto
&
operator*
()
const
{
return
*
ptr
; }
28
29
std::unique_ptr<T>
ptr
;
30
};
8
struct
copyable_unique_ptr
{
…
};
31
32
}
// namespace alpaqa::util
alpaqa::util
Definition
check-dim.hpp:8
alpaqa::inf
constexpr const auto inf
Definition
config.hpp:98
alpaqa::util::copyable_unique_ptr
Definition
copyable_unique_ptr.hpp:8
alpaqa::util::copyable_unique_ptr::operator=
copyable_unique_ptr & operator=(const copyable_unique_ptr &o)
Definition
copyable_unique_ptr.hpp:13
alpaqa::util::copyable_unique_ptr::copyable_unique_ptr
copyable_unique_ptr(copyable_unique_ptr &&) noexcept=default
alpaqa::util::copyable_unique_ptr::copyable_unique_ptr
copyable_unique_ptr(const copyable_unique_ptr &o)
Definition
copyable_unique_ptr.hpp:11
alpaqa::util::copyable_unique_ptr::operator->
std::unique_ptr< T > & operator->()
Definition
copyable_unique_ptr.hpp:24
alpaqa::util::copyable_unique_ptr::ptr
std::unique_ptr< T > ptr
Definition
copyable_unique_ptr.hpp:29
alpaqa::util::copyable_unique_ptr::operator*
auto & operator*() const
Definition
copyable_unique_ptr.hpp:27
alpaqa::util::copyable_unique_ptr::operator*
auto & operator*()
Definition
copyable_unique_ptr.hpp:26
alpaqa::util::copyable_unique_ptr::copyable_unique_ptr
copyable_unique_ptr(std::unique_ptr< T > ptr)
Definition
copyable_unique_ptr.hpp:9
alpaqa::util::copyable_unique_ptr::copyable_unique_ptr
copyable_unique_ptr()=default
alpaqa::util::copyable_unique_ptr::operator->
const std::unique_ptr< T > & operator->() const
Definition
copyable_unique_ptr.hpp:25
Generated on Tue Dec 12 2023 for alpaqa by
1.9.8