|
AsmGrader 0.0.0
|
Types and other utilities for representing expressions used in REQUIRE* statements. More...
Namespaces | |
| namespace | detail |
Classes | |
| struct | ExpressionRepr |
| Representation of an expression with all components stringized. More... | |
| struct | NAryOp |
Concepts | |
| concept | Operator |
Typedefs | |
| template<typename Args > | |
| using | Noop = NAryOp<std::identity, "", Args> |
| template<typename Arg > | |
| using | LogicalNot = NAryOp<std::logical_not<>, "!", Arg> |
| template<typename Lhs , typename Rhs > | |
| using | Equal = NAryOp<std::equal_to<>, "==", Lhs, Rhs> |
| template<typename Lhs , typename Rhs > | |
| using | NotEqual = NAryOp<std::not_equal_to<>, "!=", Lhs, Rhs> |
| template<typename Lhs , typename Rhs > | |
| using | Less = NAryOp<std::less<>, "<", Lhs, Rhs> |
| template<typename Lhs , typename Rhs > | |
| using | LessEqual = NAryOp<std::less_equal<>, "<=", Lhs, Rhs> |
| template<typename Lhs , typename Rhs > | |
| using | Greater = NAryOp<std::greater<>, ">", Lhs, Rhs> |
| template<typename Lhs , typename Rhs > | |
| using | GreaterEqual = NAryOp<std::greater_equal<>, ">=", Lhs, Rhs> |
| template<StaticString OpStr, typename T , typename U > | |
| using | OpStrToType = boost::mp11::mp_second<boost::mp11::mp_map_find<detail::StrToOpTMap<T, U>, detail::MapKeyT<OpStr>>> |
Enumerations | |
| enum class | ArityKind { Nullary = 0 , Unary , Binary , Ternary } |
Functions | |
| template<template< typename... > typename Op, typename... Args> | |
| constexpr auto | make (std::array< inspection::Tokenizer<>, sizeof...(Args)> arg_tokens, Args &&... args) |
| For argument deduction purposes. | |
Types and other utilities for representing expressions used in REQUIRE* statements.
| using asmgrader::exprs::Equal = NAryOp<std::equal_to<>, "==", Lhs, Rhs> |
| using asmgrader::exprs::Greater = NAryOp<std::greater<>, ">", Lhs, Rhs> |
| using asmgrader::exprs::GreaterEqual = NAryOp<std::greater_equal<>, ">=", Lhs, Rhs> |
| using asmgrader::exprs::Less = NAryOp<std::less<>, "<", Lhs, Rhs> |
| using asmgrader::exprs::LessEqual = NAryOp<std::less_equal<>, "<=", Lhs, Rhs> |
| using asmgrader::exprs::LogicalNot = NAryOp<std::logical_not<>, "!", Arg> |
| using asmgrader::exprs::Noop = NAryOp<std::identity, "", Args> |
| using asmgrader::exprs::NotEqual = NAryOp<std::not_equal_to<>, "!=", Lhs, Rhs> |
| using asmgrader::exprs::OpStrToType = boost::mp11::mp_second<boost::mp11::mp_map_find<detail::StrToOpTMap<T, U>, detail::MapKeyT<OpStr>>> |
|
strong |
|
constexpr |
For argument deduction purposes.