OASIS
Open Algebra Software
Loading...
Searching...
No Matches
Oasis::IExpression Concept Reference

An expression concept. More...

#include <Oasis/Concepts.hpp>

Concept definition

template<typename T>
concept Oasis::IExpression = (requires(T, const Expression& other) {
{
T::GetStaticCategory()
{
T::GetStaticType()
An expression concept.
Definition Concepts.hpp:25
T is_same_v

Detailed Description

An expression concept.

An expression concept is a type that satisfies the following requirements:

  • It is derived from Expression.
  • It has a static Specialize function that returns a std::unique_ptr<T> and takes a const Expression& as an argument.
  • It has a static Specialize function that returns a std::unique_ptr<T> and takes a const Expression& and a tf::Subflow& as arguments.
  • It has a static GetStaticCategory function that returns a uint32_t.
  • It has a static GetStaticType function that returns an ExpressionType.
Template Parameters
TThe type to check.