FLANG
Fortran::evaluate::Operation< DERIVED, RESULT, OPERANDS > Class Template Reference
Inheritance diagram for Fortran::evaluate::Operation< DERIVED, RESULT, OPERANDS >:
Fortran::evaluate::Convert< Fortran::evaluate::Type< TC1 >, TC2 > Fortran::evaluate::Divide< Fortran::evaluate::Type< Fortran::common::TypeCategory::Complex > > Fortran::evaluate::Extremum< Fortran::evaluate::Type< TC > > Fortran::evaluate::Extremum< Fortran::evaluate::Type< Fortran::common::TypeCategory::Character > > Fortran::evaluate::Negate< Fortran::evaluate::Type< Fortran::common::TypeCategory::Integer > > Fortran::evaluate::Negate< Fortran::evaluate::Type< Fortran::common::TypeCategory::Unsigned > > Fortran::evaluate::Negate< Fortran::evaluate::Type< Fortran::common::TypeCategory::Real > > Fortran::evaluate::Negate< Fortran::evaluate::Type< Fortran::common::TypeCategory::Complex > > Fortran::evaluate::Parentheses< T > Fortran::evaluate::Power< Fortran::evaluate::Type< TC > > Fortran::evaluate::RealToIntPower< Fortran::evaluate::Type< TC > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Integer > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Unsigned > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Real > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Complex > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Character > > Fortran::evaluate::Relational< SomeType >

Public Types

using Derived = DERIVED
using Result = RESULT
template<int J>
using Operand = std::tuple_element_t<J, OperandTypes>

Public Member Functions

constexpr int kind () const
 Operation (int kind, const Expr< OPERANDS > &...x)
 Operation (int kind, Expr< OPERANDS > &&...x)
Derived & derived ()
const Derived & derived () const
template<int J>
Expr< Operand< J > > & operand ()
template<int J>
const Expr< Operand< J > > & operand () const
Expr< Operand< 0 > > & left ()
const Expr< Operand< 0 > > & left () const
std::conditional_t<(operands > 1), Expr< Operand< 1 > > &, void > right ()
std::conditional_t<(operands > 1), const Expr< Operand< 1 > > &, void > right () const
constexpr std::optional< DynamicType > GetType () const
int Rank () const
bool operator== (const Operation &that) const
llvm::raw_ostream & AsFortran (llvm::raw_ostream &) const

Static Public Member Functions

static constexpr int Corank ()

Static Public Attributes

static constexpr std::size_t operands {sizeof...(OPERANDS)}

The documentation for this class was generated from the following files: