FLANG
Public Types | Public Member Functions | List of all members
Fortran::lower::pft::ReferenceVariantBase< isConst, A > Class Template Reference

#include <flang/Lower/PFTBuilder.h>

Inheritance diagram for Fortran::lower::pft::ReferenceVariantBase< isConst, A >:
Fortran::lower::pft::ProgramUnit Fortran::lower::pft::BlockDataUnit Fortran::lower::pft::CompilerDirectiveUnit Fortran::lower::pft::FunctionLikeUnit Fortran::lower::pft::ModuleLikeUnit Fortran::lower::pft::OpenACCDirectiveUnit

Public Types

template<typename B >
using BaseType = std::conditional_t< isConst, const B, B >
 
template<typename B >
using Ref = common::Reference< BaseType< B > >
 

Public Member Functions

 ReferenceVariantBase (std::variant< Ref< A >... > b)
 
template<typename T >
 ReferenceVariantBase (Ref< T > b)
 
template<typename B >
constexpr BaseType< B > & get () const
 
template<typename B >
constexpr BaseType< B > & getStatement () const
 
template<typename B >
constexpr BaseType< B > * getIf () const
 
template<typename B >
constexpr bool isA () const
 
template<typename VISITOR >
constexpr auto visit (VISITOR &&visitor) const
 

Detailed Description

template<bool isConst, typename... A>
class Fortran::lower::pft::ReferenceVariantBase< isConst, A >

Provide a variant like container that can hold references. It can hold constant or mutable references. It is used in the other classes to provide union of const references to parse-tree nodes.


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