Chrysalis - Pattern
Toggle main menu visibility
Loading...
Searching...
No Matches
ConditionalArgument.h
Go to the documentation of this file.
1
#ifndef CHRYSALIS_CONDITIONALARGUMENT_H
2
#define CHRYSALIS_CONDITIONALARGUMENT_H
3
4
#include "
arguments/BaseArgument.h
"
5
#include "
arguments/BaseCalculatedArgument.h
"
6
10
namespace
Chrysalis
{
11
class
ConditionalArgument
:
public
BaseCalculatedArgument
<double> {
12
PROVIDE_SERIALIZATION_ACCESS
(
ConditionalArgument
)
13
public
:
14
explicit
ConditionalArgument
(
const
args::condition
* condition,
15
args::number
&& positive,
args::number
&& negative);
16
~ConditionalArgument
()
override
;
17
protected
:
18
std::expected<double, Error>
calculate
()
const override
;
19
private
:
20
const
args::condition
* condition_;
21
args::number
positive_;
22
args::number
negative_;
23
};
24
SERIALIZE_DERIVED_CONSTRUCTION
(
ConditionalArgument
,
BaseCalculatedArgument<double>
, condition_, positive_, negative_)
25
namespace
args
{
26
using
conditional
=
ConditionalArgument
;
27
}
28
}
30
31
#endif
//CHRYSALIS_CONDITIONALARGUMENT_H
BaseArgument.h
BaseCalculatedArgument.h
Chrysalis::BaseCalculatedArgument
Definition
BaseCalculatedArgument.h:13
Chrysalis::BaseCalculatedArgument< double >::BaseCalculatedArgument
BaseCalculatedArgument()=default
Chrysalis::ConditionalArgument
Definition
ConditionalArgument.h:11
Chrysalis::ConditionalArgument::ConditionalArgument
ConditionalArgument(const args::condition *condition, args::number &&positive, args::number &&negative)
Definition
ConditionalArgument.cpp:5
Chrysalis::ConditionalArgument::calculate
std::expected< double, Error > calculate() const override
Definition
ConditionalArgument.cpp:13
Chrysalis::ConditionalArgument::~ConditionalArgument
~ConditionalArgument() override
Definition
ConditionalArgument.cpp:9
Chrysalis::args
Definition
Argument.h:26
Chrysalis::args::condition
BaseArgument< bool > condition
Definition
BaseArgument.h:26
Chrysalis::args::number
std::unique_ptr< BaseArgument< double > > number
Definition
BaseArgument.h:25
Chrysalis::args::conditional
ConditionalArgument conditional
Definition
ConditionalArgument.h:26
Chrysalis
Definition
Argument.h:9
PROVIDE_SERIALIZATION_ACCESS
#define PROVIDE_SERIALIZATION_ACCESS(Class)
Definition
serialization.h:29
SERIALIZE_DERIVED_CONSTRUCTION
#define SERIALIZE_DERIVED_CONSTRUCTION(Class, Base,...)
Definition
serialization.h:124
pattern
include
arguments
ConditionalArgument.h
Generated by
1.17.0