hummingbird
Solving the self-adjoint angular flux transport equation using spectral elements on Cartesian geometry
Loading...
Searching...
No Matches
tinyexpr.h File Reference

Go to the source code of this file.

Classes

struct  te_fun_traits< ReturnType(*)(Args...)>
struct  te_fun_traits< ReturnType(Args...)>
struct  te_is_closure< FuncType >
struct  te_is_closure< ReturnType(*)(const te_expr *, Args...)>
struct  te_is_closure< ReturnType(const te_expr *, Args...)>
struct  te_is_closure< te_arg_confun >
class  te_string_less
class  te_expr
 A compiled expression. More...
class  te_variable
 Custom variable or function that can be added to a te_parser. More...
class  te_parser
 Math formula parser. More...
struct  te_parser::state

Typedefs

using te_type = float
 Define this to use float instead of double for the parser's data type.
using te_fun0 = te_type (*)()
using te_fun1 = te_type (*)(te_type)
using te_fun2 = te_type (*)(te_type, te_type)
using te_fun3 = te_type (*)(te_type, te_type, te_type)
using te_fun4 = te_type (*)(te_type, te_type, te_type, te_type)
using te_fun5 = te_type (*)(te_type, te_type, te_type, te_type, te_type)
using te_fun6 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun7 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun8 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun9 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun10 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun11 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun12 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun13 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun14 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun15 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun16 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun17 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun18 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun19 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun20 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun21 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun22 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun23 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_fun24 = te_type (*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun0 = te_type (*)(const te_expr*)
using te_confun1 = te_type (*)(const te_expr*, te_type)
using te_confun2 = te_type (*)(const te_expr*, te_type, te_type)
using te_confun3 = te_type (*)(const te_expr*, te_type, te_type, te_type)
using te_confun4 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type)
using te_confun5 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type)
using te_confun6 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun7 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun8 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun9 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun10 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun11 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun12 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun13 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun14 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun15 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun16 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun17 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun18 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun19 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun20 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun21 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun22 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun23 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_confun24 = te_type (*)(const te_expr*, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type)
using te_arg = std::variant<te_type, std::string_view>
 A function argument, either a number or a string literal.
using te_arg_fun = te_type (*)(std::span<const te_arg>)
 A function taking any number of number-or-string arguments.
using te_arg_confun = te_type (*)(const te_expr*, std::span<const te_arg>)
 Context version of te_arg_fun (te_variable passes a client's te_expr first).
using te_usr_noop = std::function<void()>
using te_usr_fun0 = std::function<te_type(std::string_view)>
using te_usr_fun1 = std::function<te_type(std::string_view, std::string&)>
using te_usr_variant_type = std::variant<te_usr_noop, te_usr_fun0, te_usr_fun1>
using te_variant_type

Enumerations

enum  te_variable_flags { TE_DEFAULT = 0 , TE_PURE = (1 << 0) , TE_VARIADIC = (1 << 1) }
 A variable's flags, effecting how it is evaluated. More...

Variables

constexpr int TINYEXPR_CPP_MAJOR_VERSION = 1
constexpr int TINYEXPR_CPP_MINOR_VERSION = 2
constexpr int TINYEXPR_CPP_PATCH_VERSION = 0
constexpr int TINYEXPR_CPP_TWEAK_VERSION = 0
template<typename FuncType>
constexpr size_t te_function_arity = te_fun_traits<FuncType>::arity
template<typename T>
constexpr bool te_is_constant_v = std::is_same_v<T, te_type>
template<typename T>
constexpr bool te_is_variable_v = std::is_same_v<T, const te_type*>
template<typename T>
constexpr bool te_is_closure_v = te_is_closure<T>::value
template<typename T>
constexpr bool te_is_string_v = std::is_same_v<T, std::string_view>
template<typename T>
constexpr bool te_is_arg_function_v = std::is_same_v<T, te_arg_fun>
template<typename T>
constexpr bool te_is_arg_closure_v = std::is_same_v<T, te_arg_confun>
template<typename T>
constexpr bool te_is_function_v

Typedef Documentation

◆ te_arg

using te_arg = std::variant<te_type, std::string_view>

A function argument, either a number or a string literal.

Note
A std::string_view points into the parser's copy of the expression. Do not store it beyond the compiled expression's lifetime.

Definition at line 182 of file tinyexpr.h.

◆ te_arg_confun

using te_arg_confun = te_type (*)(const te_expr*, std::span<const te_arg>)

Context version of te_arg_fun (te_variable passes a client's te_expr first).

Warning
The span is only valid for the duration of the call.

Definition at line 193 of file tinyexpr.h.

◆ te_arg_fun

using te_arg_fun = te_type (*)(std::span<const te_arg>)

A function taking any number of number-or-string arguments.

Note
The parser does not check the argument count for these. Review args.size() and each argument's type, returning te_parser::te_nan if invalid.
Warning
The span is only valid for the duration of the call.

Definition at line 189 of file tinyexpr.h.

◆ te_confun0

using te_confun0 = te_type (*)(const te_expr*)

Definition at line 152 of file tinyexpr.h.

◆ te_confun1

using te_confun1 = te_type (*)(const te_expr*, te_type)

Definition at line 153 of file tinyexpr.h.

◆ te_confun10

Definition at line 162 of file tinyexpr.h.

◆ te_confun11

◆ te_confun12

◆ te_confun13

◆ te_confun14

◆ te_confun15

◆ te_confun16

◆ te_confun17

◆ te_confun18

◆ te_confun19

◆ te_confun2

using te_confun2 = te_type (*)(const te_expr*, te_type, te_type)

Definition at line 154 of file tinyexpr.h.

◆ te_confun20

◆ te_confun21

◆ te_confun22

◆ te_confun23

◆ te_confun24

◆ te_confun3

using te_confun3 = te_type (*)(const te_expr*, te_type, te_type, te_type)

Definition at line 155 of file tinyexpr.h.

◆ te_confun4

Definition at line 156 of file tinyexpr.h.

◆ te_confun5

Definition at line 157 of file tinyexpr.h.

◆ te_confun6

Definition at line 158 of file tinyexpr.h.

◆ te_confun7

Definition at line 159 of file tinyexpr.h.

◆ te_confun8

Definition at line 160 of file tinyexpr.h.

◆ te_confun9

Definition at line 161 of file tinyexpr.h.

◆ te_fun0

using te_fun0 = te_type (*)()

Definition at line 126 of file tinyexpr.h.

◆ te_fun1

using te_fun1 = te_type (*)(te_type)

Definition at line 127 of file tinyexpr.h.

◆ te_fun10

◆ te_fun11

◆ te_fun12

◆ te_fun13

◆ te_fun14

◆ te_fun15

◆ te_fun16

◆ te_fun17

◆ te_fun18

◆ te_fun19

◆ te_fun2

using te_fun2 = te_type (*)(te_type, te_type)

Definition at line 128 of file tinyexpr.h.

◆ te_fun20

◆ te_fun21

◆ te_fun22

◆ te_fun23

◆ te_fun24

◆ te_fun3

Definition at line 129 of file tinyexpr.h.

◆ te_fun4

Definition at line 130 of file tinyexpr.h.

◆ te_fun5

Definition at line 131 of file tinyexpr.h.

◆ te_fun6

Definition at line 132 of file tinyexpr.h.

◆ te_fun7

Definition at line 133 of file tinyexpr.h.

◆ te_fun8

Definition at line 134 of file tinyexpr.h.

◆ te_fun9

Definition at line 135 of file tinyexpr.h.

◆ te_type

typedef double te_type = float

Define this to use float instead of double for the parser's data type.

The parameter and return type for parser and its functions.

Definition at line 105 of file tinyexpr.h.

◆ te_usr_fun0

using te_usr_fun0 = std::function<te_type(std::string_view)>

Definition at line 266 of file tinyexpr.h.

◆ te_usr_fun1

using te_usr_fun1 = std::function<te_type(std::string_view, std::string&)>

Definition at line 267 of file tinyexpr.h.

◆ te_usr_noop

using te_usr_noop = std::function<void()>

Definition at line 265 of file tinyexpr.h.

◆ te_usr_variant_type

Definition at line 269 of file tinyexpr.h.

◆ te_variant_type

Initial value:
std::variant<
te_type, const te_type*,
te_arg_fun, te_arg_confun, std::string_view>
te_type(*)(const te_expr *, te_type) te_confun1
Definition tinyexpr.h:153
te_type(*)(const te_expr *, te_type, te_type, te_type) te_confun3
Definition tinyexpr.h:155
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun10
Definition tinyexpr.h:162
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun9
Definition tinyexpr.h:161
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun20
Definition tinyexpr.h:146
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun23
Definition tinyexpr.h:149
float te_type
Define this to use float instead of double for the parser's data type.
Definition tinyexpr.h:105
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun21
Definition tinyexpr.h:147
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun18
Definition tinyexpr.h:170
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun12
Definition tinyexpr.h:164
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type) te_confun5
Definition tinyexpr.h:157
te_type(*)(const te_expr *, std::span< const te_arg >) te_arg_confun
Context version of te_arg_fun (te_variable passes a client's te_expr first).
Definition tinyexpr.h:193
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type) te_confun4
Definition tinyexpr.h:156
te_type(*)(std::span< const te_arg >) te_arg_fun
A function taking any number of number-or-string arguments.
Definition tinyexpr.h:189
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun7
Definition tinyexpr.h:133
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun20
Definition tinyexpr.h:172
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun14
Definition tinyexpr.h:166
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun24
Definition tinyexpr.h:176
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun22
Definition tinyexpr.h:148
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type) te_fun6
Definition tinyexpr.h:132
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun19
Definition tinyexpr.h:145
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type) te_confun6
Definition tinyexpr.h:158
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun11
Definition tinyexpr.h:163
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun18
Definition tinyexpr.h:144
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun19
Definition tinyexpr.h:171
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun17
Definition tinyexpr.h:169
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun8
Definition tinyexpr.h:160
te_type(*)(te_type, te_type, te_type) te_fun3
Definition tinyexpr.h:129
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun7
Definition tinyexpr.h:159
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun9
Definition tinyexpr.h:135
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun14
Definition tinyexpr.h:140
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun11
Definition tinyexpr.h:137
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun24
Definition tinyexpr.h:150
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun16
Definition tinyexpr.h:168
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun15
Definition tinyexpr.h:167
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun21
Definition tinyexpr.h:173
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun10
Definition tinyexpr.h:136
te_type(*)(const te_expr *, te_type, te_type) te_confun2
Definition tinyexpr.h:154
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun13
Definition tinyexpr.h:165
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun8
Definition tinyexpr.h:134
te_type(*)(te_type, te_type) te_fun2
Definition tinyexpr.h:128
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun13
Definition tinyexpr.h:139
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun15
Definition tinyexpr.h:141
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun16
Definition tinyexpr.h:142
te_type(*)() te_fun0
Definition tinyexpr.h:126
te_type(*)(te_type, te_type, te_type, te_type, te_type) te_fun5
Definition tinyexpr.h:131
te_type(*)(te_type) te_fun1
Definition tinyexpr.h:127
te_type(*)(const te_expr *) te_confun0
Definition tinyexpr.h:152
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun17
Definition tinyexpr.h:143
te_type(*)(te_type, te_type, te_type, te_type) te_fun4
Definition tinyexpr.h:130
te_type(*)(te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_fun12
Definition tinyexpr.h:138
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun23
Definition tinyexpr.h:175
te_type(*)(const te_expr *, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type, te_type) te_confun22
Definition tinyexpr.h:174

Definition at line 273 of file tinyexpr.h.

Enumeration Type Documentation

◆ te_variable_flags

A variable's flags, effecting how it is evaluated.

Note
This is a bitmask, so flags (TE_PURE and TE_VARIADIC) can be OR'ed.
Enumerator
TE_DEFAULT 

Don't do anything special when evaluating.

TE_PURE 

Don't update when simple evaluation is run (i.e., only updated when expression is compiled).

TE_VARIADIC 

Function that can take 1-24 argument (unused arguments are set to NaN).

Definition at line 291 of file tinyexpr.h.

Variable Documentation

◆ te_function_arity

template<typename FuncType>
size_t te_function_arity = te_fun_traits<FuncType>::arity
constexpr

Definition at line 214 of file tinyexpr.h.

◆ te_is_arg_closure_v

template<typename T>
bool te_is_arg_closure_v = std::is_same_v<T, te_arg_confun>
constexpr

Definition at line 257 of file tinyexpr.h.

◆ te_is_arg_function_v

template<typename T>
bool te_is_arg_function_v = std::is_same_v<T, te_arg_fun>
constexpr

Definition at line 254 of file tinyexpr.h.

◆ te_is_closure_v

template<typename T>
bool te_is_closure_v = te_is_closure<T>::value
constexpr

Definition at line 247 of file tinyexpr.h.

◆ te_is_constant_v

template<typename T>
bool te_is_constant_v = std::is_same_v<T, te_type>
constexpr

Definition at line 217 of file tinyexpr.h.

◆ te_is_function_v

template<typename T>
bool te_is_function_v
constexpr
Initial value:
=
constexpr bool te_is_arg_function_v
Definition tinyexpr.h:254
constexpr bool te_is_string_v
Definition tinyexpr.h:251
constexpr bool te_is_closure_v
Definition tinyexpr.h:247
constexpr bool te_is_arg_closure_v
Definition tinyexpr.h:257
constexpr bool te_is_variable_v
Definition tinyexpr.h:220
constexpr bool te_is_constant_v
Definition tinyexpr.h:217

Definition at line 260 of file tinyexpr.h.

◆ te_is_string_v

template<typename T>
bool te_is_string_v = std::is_same_v<T, std::string_view>
constexpr

Definition at line 251 of file tinyexpr.h.

◆ te_is_variable_v

template<typename T>
bool te_is_variable_v = std::is_same_v<T, const te_type*>
constexpr

Definition at line 220 of file tinyexpr.h.

◆ TINYEXPR_CPP_MAJOR_VERSION

int TINYEXPR_CPP_MAJOR_VERSION = 1
constexpr

Definition at line 83 of file tinyexpr.h.

◆ TINYEXPR_CPP_MINOR_VERSION

int TINYEXPR_CPP_MINOR_VERSION = 2
constexpr

Definition at line 84 of file tinyexpr.h.

◆ TINYEXPR_CPP_PATCH_VERSION

int TINYEXPR_CPP_PATCH_VERSION = 0
constexpr

Definition at line 85 of file tinyexpr.h.

◆ TINYEXPR_CPP_TWEAK_VERSION

int TINYEXPR_CPP_TWEAK_VERSION = 0
constexpr

Definition at line 86 of file tinyexpr.h.