39 template <
typename Type>
50 template <
typename... Args>
63 template <
typename Expression,
typename Arg,
bool Expandable>
72 template <
typename Expression,
typename Arg>
82 template <
typename Expression,
typename Arg>
83 struct expand<Expression, Arg, false>
90 template <
typename Expression,
typename Arg>
99 template <
typename Expression>
107 template <
template <
typename...>
class Function,
typename... Args>
112 using function = Function<typename expand<Args, no_args, true>::result...>;
115 using result =
typename function::result;
120 #endif // NANO_EVAL_HPP
Simply an identifier to identify meta types and meta functions.
Definition: eval.hpp:40
Definition: containers.hpp:34
Evaluates an expression with arguments.
Definition: eval.hpp:73
Expression result
Definition: eval.hpp:103
typename function::result result
Definition: eval.hpp:115
Meta class that holds types, and allows functions to be applied to the elements of the list using the...
Definition: list.hpp:51
Header file for static numeric types to use for meta functions.
Expression result
Definition: eval.hpp:76
A list of arguments.
Definition: eval.hpp:51
typename eval< Expression, Arg >::result result
Definition: eval.hpp:93
Expression result
Definition: eval.hpp:86
Expands a list into its types.
Definition: eval.hpp:64