template <class T> constexpr const T& min(const T& a, const T& b, ...)
Returns the least of all arguments.
template <class T> constexpr const T& max(const T& a, const T& b, ...)
Returns the greatest of all arguments.
template <class T> constexpr T clamp(const T& x, const T& min_, const T& max_)
Returns x if it is between min_ and max_ .
If x is lower than min_ it returns min_ .
If x is higher than max_ it returns max_ ..
template <class T, class T1, ...> int findarg(const T& x, const T1& p0, ...)
Searches the list of arguments for the value of x. If it is found, function returns the index of argument (starting with 0). If not found, -1 is returned.
template <class T, class T1, class V1, ..., class D>
constexpr D decode(const T& x, const T1& p0, const V1& v0, ..., const D& def)
Searches the list of argument pairs for the value of x to be equal to the first argument in the pair. If found, returns the second argument of pair. If no match is found, returns the last argument def.
template <class T, class T1, ...> T get_i(int i, const T& p0, const T1& p1, ...)
const char *get_i(int i, const char *p0, const char *p1, ...)
Returns parameter pi. If i is negative, returns p0, if it is greater then the number of parameters, returns the last parameter.
template <class F, class T, class T1, ...> void foreach_arg(F fn, const T& p0, const T1& p1, ...)
Performs fn for each of arguments (argument is passed as fn parameter). Designed to be applied to a parameter pack.
template <class I, typename... Args> void iter_set(I t, Args&& ...args)
Writes arguments to a sequence pointed to by iterator t. Designed to be applied to a parameter pack.
template <class I, typename... Args> void iter_get(I s, Args& ...args)
Reads arguments from a sequence pointed to by iterator t. Designed to be applied to a parameter pack.
template <class C, typename... Args> C gather(Args&& ...args)
Converts arguments into container. Designed to be applied to a parameter pack.
template <class C, typename... Args> int scatter_n(int n, const C& c, Args& ...args)
If n is less than sizeof...(args), returns zero, otherwise writes first elements of container to arguments and returns sizeof...(args).
template <class C, typename... Args> int scatter(const C& c, Args& ...args)
Same as scatter_n(c.size(), c, args...).
|