Chrysalis - Pattern
Toggle main menu visibility
Loading...
Searching...
No Matches
Expression.h
Go to the documentation of this file.
1
#ifndef CHRYSALIS_EXPRESSION_H
2
#define CHRYSALIS_EXPRESSION_H
3
4
#include "
BaseNamedElement.h
"
5
#include "
ScopedNamedElementsContainer.h
"
6
#include "
arguments/BaseCalculatedArgument.h
"
7
8
namespace
Chrysalis
{
9
struct
ExpressionValue
{
10
explicit
operator
double()
const
;
11
double
value
;
12
};
13
class
Expression:
public
BaseNamedElement
,
public
BaseCalculatedArgument
<ExpressionValue> {
14
PROVIDE_DEFAULT_SERIALIZATION_ACCESS
(Expression)
15
SERIALIZE_DERIVED_FROM
(
BaseNamedElement
, expression_)
16
public
:
17
explicit
Expression(
const
std::string& name,
args::number
&& expression);
18
protected
:
19
std::expected<ExpressionValue, Error>
calculate
()
const override
;
20
private
:
21
args::number
expression_;
22
};
23
using
ExpressionsContainer
=
ScopedNamedElementsContainer<Expression>
;
24
}
25
26
#endif
//CHRYSALIS_EXPRESSION_H
BaseCalculatedArgument.h
BaseNamedElement.h
ScopedNamedElementsContainer.h
Chrysalis::BaseCalculatedArgument< ExpressionValue >::BaseCalculatedArgument
BaseCalculatedArgument()=default
Chrysalis::BaseNamedElement::BaseNamedElement
BaseNamedElement()=default
Chrysalis::Expression::calculate
std::expected< ExpressionValue, Error > calculate() const override
Definition
Expression.cpp:12
Chrysalis::ScopedNamedElementsContainer
Definition
ScopedNamedElementsContainer.h:8
Chrysalis::args::number
std::unique_ptr< BaseArgument< double > > number
Definition
BaseArgument.h:25
Chrysalis
Definition
Argument.h:9
Chrysalis::ExpressionsContainer
ScopedNamedElementsContainer< Expression > ExpressionsContainer
Definition
Expression.h:23
PROVIDE_DEFAULT_SERIALIZATION_ACCESS
#define PROVIDE_DEFAULT_SERIALIZATION_ACCESS(Class)
Definition
serialization.h:45
SERIALIZE_DERIVED_FROM
#define SERIALIZE_DERIVED_FROM(Base,...)
Definition
serialization.h:71
Chrysalis::ExpressionValue
Definition
Expression.h:9
Chrysalis::ExpressionValue::value
double value
Definition
Expression.h:11
pattern
include
Expression.h
Generated by
1.17.0