OASIS
Open Algebra Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages Concepts
Oasis::MatchCastImpl< ArgumentT, Cases > Class Template Reference

#include <Oasis/MatchCast.hpp>

Public Member Functions

template<typename Check , typename Transformer >
requires TransformerAcceptsCheckArg<Check, Transformer, ArgumentT>
consteval auto Case (Check, Transformer) const -> MatchCastImpl< ArgumentT, typename boost::mpl::push_back< Cases, std::pair< Check, Transformer > >::type >
 
template<typename VisitorPtrT >
requires IVisitor<std::remove_pointer_t<VisitorPtrT>> || std::same_as<VisitorPtrT, std::nullptr_t>
auto Execute (const ArgumentT &arg, VisitorPtrT visitor) const -> std::expected< std::unique_ptr< ArgumentT >, std::string_view >
 

Member Function Documentation

◆ Case()

template<typename ArgumentT , typename Cases >
template<typename Check , typename Transformer >
requires TransformerAcceptsCheckArg<Check, Transformer, ArgumentT>
consteval auto Oasis::MatchCastImpl< ArgumentT, Cases >::Case ( Check ,
Transformer  ) const -> MatchCastImpl<ArgumentT, typename boost::mpl::push_back<Cases, std::pair<Check, Transformer>>::type>
inline

◆ Execute()

template<typename ArgumentT , typename Cases >
template<typename VisitorPtrT >
requires IVisitor<std::remove_pointer_t<VisitorPtrT>> || std::same_as<VisitorPtrT, std::nullptr_t>
auto Oasis::MatchCastImpl< ArgumentT, Cases >::Execute ( const ArgumentT & arg,
VisitorPtrT visitor ) const -> std::expected<std::unique_ptr<ArgumentT>, std::string_view>
inline

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