Chrysalis - Pattern
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
9namespace Chrysalis {
10 template<typename T>
12 SERIALIZE(argument_)
13 public:
14 explicit OptionalArgument() = default;
15 explicit OptionalArgument(const T* argument): argument_(argument) {}
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>
31 }
32}
34
35#endif //CHRYSALIS_OPTIONALARGUMENT_H
Definition OptionalArgument.h:11
const T * argument() const
Definition OptionalArgument.h:22
~OptionalArgument()
Definition OptionalArgument.h:16
bool hasArgument() const
Definition OptionalArgument.h:19
OptionalArgument(const T *argument)
Definition OptionalArgument.h:15
OptionalArgument< T > optional
Definition OptionalArgument.h:30
Definition Argument.h:9
#define SERIALIZE(...)
Definition serialization.h:62