Chrysalis - Pattern
Toggle main menu visibility
Loading...
Searching...
No Matches
OptionalArgument.h
Go to the documentation of this file.
1
#ifndef CHRYSALIS_OPTIONALARGUMENT_H
2
#define CHRYSALIS_OPTIONALARGUMENT_H
3
4
#include "
serialization.h
"
5
9
namespace
Chrysalis
{
10
template
<
typename
T>
11
class
OptionalArgument
{
12
SERIALIZE
(argument_)
13
public
:
14
explicit
OptionalArgument
() =
default
;
15
explicit
OptionalArgument
(
const
T*
argument
): argument_(
argument
) {}
16
~OptionalArgument
() {
17
delete
argument_;
18
}
19
[[nodiscard]]
bool
hasArgument
()
const
{
20
return
argument_;
21
}
22
const
T*
argument
()
const
{
23
return
argument_;
24
}
25
private
:
26
const
T* argument_;
27
};
28
namespace
args {
29
template
<
typename
T>
30
using
optional
=
OptionalArgument<T>
;
31
}
32
}
34
35
#endif
//CHRYSALIS_OPTIONALARGUMENT_H
Chrysalis::OptionalArgument
Definition
OptionalArgument.h:11
Chrysalis::OptionalArgument::argument
const T * argument() const
Definition
OptionalArgument.h:22
Chrysalis::OptionalArgument::~OptionalArgument
~OptionalArgument()
Definition
OptionalArgument.h:16
Chrysalis::OptionalArgument::hasArgument
bool hasArgument() const
Definition
OptionalArgument.h:19
Chrysalis::OptionalArgument::OptionalArgument
OptionalArgument(const T *argument)
Definition
OptionalArgument.h:15
Chrysalis::OptionalArgument::OptionalArgument
OptionalArgument()=default
Chrysalis::args::optional
OptionalArgument< T > optional
Definition
OptionalArgument.h:30
Chrysalis
Definition
Argument.h:9
serialization.h
SERIALIZE
#define SERIALIZE(...)
Definition
serialization.h:62
pattern
include
arguments
OptionalArgument.h
Generated by
1.17.0