Chrysalis - Pattern
Toggle main menu visibility
Loading...
Searching...
No Matches
ExpressionArgument.h
Go to the documentation of this file.
1
#ifndef CHRYSALIS_EXPRESSIONARGUMENT_H
2
#define CHRYSALIS_EXPRESSIONARGUMENT_H
3
4
#include "
Expression.h
"
5
#include "
arguments/Argument.h
"
6
#include "
arguments/BaseCalculatedArgument.h
"
7
11
namespace
Chrysalis
{
12
class
ExpressionArgument
:
public
BaseCalculatedArgument
<double> {
13
PROVIDE_SERIALIZATION_ACCESS
(
ExpressionArgument
)
14
public
:
15
explicit
ExpressionArgument
(
const
ExpressionsContainer
* expressions,
args::name
&& name);
16
protected
:
17
std::expected<double, Error>
calculate
()
const override
;
18
private
:
19
const
ExpressionsContainer
* expressions_;
21
args::name
name_;
22
};
23
namespace
args
{
24
using
expr
=
Expression
;
25
}
26
SERIALIZE_DERIVED_CONSTRUCTION
(
ExpressionArgument
,
BaseCalculatedArgument<double>
, expressions_, name_)
27
}
29
30
#endif
//CHRYSALIS_EXPRESSIONARGUMENT_H
Argument.h
BaseCalculatedArgument.h
Expression.h
Chrysalis::BaseCalculatedArgument< double >::BaseCalculatedArgument
BaseCalculatedArgument()=default
Chrysalis::ExpressionArgument::calculate
std::expected< double, Error > calculate() const override
Definition
ExpressionArgument.cpp:8
Chrysalis::ExpressionArgument::ExpressionArgument
ExpressionArgument(const ExpressionsContainer *expressions, args::name &&name)
Definition
ExpressionArgument.cpp:5
Chrysalis::Expression
Definition
Expression.h:13
Chrysalis::args
Definition
Argument.h:26
Chrysalis::args::name
std::unique_ptr< Argument< std::string > > name
Definition
Argument.h:27
Chrysalis::args::expr
Expression expr
Definition
ExpressionArgument.h:24
Chrysalis
Definition
Argument.h:9
Chrysalis::ExpressionsContainer
ScopedNamedElementsContainer< Expression > ExpressionsContainer
Definition
Expression.h:23
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
ExpressionArgument.h
Generated by
1.17.0