5#ifndef OAISIS_BOUNDEDEXPRESSION_HPP
6#define OAISIS_BOUNDEDEXPRESSION_HPP
22template <IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
43 return lowerBound !=
nullptr;
48 return upperBound !=
nullptr;
70 lowerBound = expr.Copy();
81 upperBound = expr.Copy();
A concept base class for both Unary and BoundedBinary expressions.
Definition BoundedExpression.hpp:23
BoundedExpression(const LowerBoundT &lowerBound, const UpperBoundT &upperBound)
Definition BoundedExpression.hpp:35
auto GetLowerBound() const -> const LowerBoundT &
Definition BoundedExpression.hpp:51
BoundedExpression(const BoundedExpression &other)
Definition BoundedExpression.hpp:27
auto GetUpperBound() const -> const UpperBoundT &
Definition BoundedExpression.hpp:57
auto HasLowerBound() const -> bool
Definition BoundedExpression.hpp:41
BoundedExpression()=default
void SetLowerBound(const T &expr)
Definition BoundedExpression.hpp:65
auto HasUpperBound() const -> bool
Definition BoundedExpression.hpp:46
void SetUpperBound(const T &expr)
Definition BoundedExpression.hpp:76
An expression.
Definition Expression.hpp:62
Checks if type T is same as any of the provided types in U.
Definition Concepts.hpp:51