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, KIND >, TC2 > Fortran::evaluate::Divide< Fortran::evaluate::Type< Fortran::common::TypeCategory::Complex, KIND > > Fortran::evaluate::Extremum< Fortran::evaluate::Type< TC, KIND > > Fortran::evaluate::Extremum< Fortran::evaluate::Type< Fortran::common::TypeCategory::Character, KIND > > Fortran::evaluate::Negate< Fortran::evaluate::Type< Fortran::common::TypeCategory::Integer, KIND > > Fortran::evaluate::Negate< Fortran::evaluate::Type< Fortran::common::TypeCategory::Unsigned, KIND > > Fortran::evaluate::Negate< Fortran::evaluate::Type< Fortran::common::TypeCategory::Real, KIND > > Fortran::evaluate::Negate< Fortran::evaluate::Type< Fortran::common::TypeCategory::Complex, KIND > > Fortran::evaluate::Parentheses< T > Fortran::evaluate::Power< Fortran::evaluate::Type< TC, KIND > > Fortran::evaluate::RealToIntPower< Fortran::evaluate::Type< TC, KIND > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Integer, KIND > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Unsigned, KIND > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Real, KIND > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Complex, KIND > > Fortran::evaluate::Relational< Fortran::evaluate::Type< Fortran::common::TypeCategory::Character, KIND > > 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

 Operation (const Expr< OPERANDS > &...x)
 Operation (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
int Rank () const
bool operator== (const Operation &that) const
llvm::raw_ostream & AsFortran (llvm::raw_ostream &) const

Static Public Member Functions

static constexpr std::conditional_t< Result::category !=TypeCategory::Derived, std::optional< DynamicType >, void > GetType ()
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: