FLANG
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
Fortran::evaluate::Operation< DERIVED, RESULT, OPERANDS > Class Template Reference
Inheritance diagram for Fortran::evaluate::Operation< DERIVED, RESULT, OPERANDS >:
Fortran::evaluate::Convert< TO, FROMCAT >

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: