|
limes 3.1.0
Composable Calculus Expressions for C++20
|
#include <span>#include <string>#include <cstddef>#include <algorithm>#include "../concepts.hpp"
Include dependency graph for binary.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | limes::expr::is_integral< T > |
| struct | limes::expr::Add |
| struct | limes::expr::Sub |
| struct | limes::expr::Mul |
| struct | limes::expr::Div |
| struct | limes::expr::Binary< Op, L, R > |
| struct | limes::expr::is_const_expr< T > |
| struct | limes::expr::is_const_expr< Const< T > > |
| struct | limes::expr::is_expr_node< T, typename > |
| struct | limes::expr::is_expr_node< T, std::void_t< decltype(T::arity_v)> > |
Namespaces | |
| namespace | limes |
| namespace | limes::expr |
| Expression layer for composable calculus. | |
Functions | |
| template<typename L , typename R > requires (is_expr_node_v<L> && is_expr_node_v<R>) | |
| constexpr auto | limes::expr::operator+ (L l, R r) |
| template<typename L , typename T > requires (is_expr_node_v<L> && std::is_arithmetic_v<T>) | |
| constexpr auto | limes::expr::operator+ (L l, T r) |
| template<typename T , typename R > requires (std::is_arithmetic_v<T> && is_expr_node_v<R>) | |
| constexpr auto | limes::expr::operator+ (T l, R r) |
| template<typename L , typename R > requires (is_expr_node_v<L> && is_expr_node_v<R>) | |
| constexpr auto | limes::expr::operator- (L l, R r) |
| template<typename L , typename T > requires (is_expr_node_v<L> && std::is_arithmetic_v<T>) | |
| constexpr auto | limes::expr::operator- (L l, T r) |
| template<typename T , typename R > requires (std::is_arithmetic_v<T> && is_expr_node_v<R>) | |
| constexpr auto | limes::expr::operator- (T l, R r) |
| template<typename L , typename R > requires (is_expr_node_v<L> && is_expr_node_v<R> && !is_integral<L>::value && !is_integral<R>::value) | |
| constexpr auto | limes::expr::operator* (L l, R r) |
| template<typename L , typename T > requires (is_expr_node_v<L> && std::is_arithmetic_v<T>) | |
| constexpr auto | limes::expr::operator* (L l, T r) |
| template<typename T , typename R > requires (std::is_arithmetic_v<T> && is_expr_node_v<R>) | |
| constexpr auto | limes::expr::operator* (T l, R r) |
| template<typename L , typename R > requires (is_expr_node_v<L> && is_expr_node_v<R>) | |
| constexpr auto | limes::expr::operator/ (L l, R r) |
| template<typename L , typename T > requires (is_expr_node_v<L> && std::is_arithmetic_v<T>) | |
| constexpr auto | limes::expr::operator/ (L l, T r) |
| template<typename T , typename R > requires (std::is_arithmetic_v<T> && is_expr_node_v<R>) | |
| constexpr auto | limes::expr::operator/ (T l, R r) |
Variables | |
| template<typename T > | |
| constexpr bool | limes::expr::is_const_expr_v = is_const_expr<T>::value |
| template<typename T > | |
| constexpr bool | limes::expr::is_expr_node_v = is_expr_node<T>::value |