#ifndef METAL_LAMBDA_INVOKE_HPP #define METAL_LAMBDA_INVOKE_HPP #include "../config.hpp" #include "../lambda/apply.hpp" #include "../list/list.hpp" namespace metal { /// \ingroup lambda /// /// ### Description /// Invokes a \lambda with the given \values as arguments. /// /// ### Usage /// For any \lambda `lbd` and \values `val_0, ..., val_n-1` /// \code /// using result = metal::invoke; /// \endcode /// /// \returns: \value /// \semantics: /// If `lbd` holds \expression `expr`, then /// \code /// using result = expr; /// \endcode /// /// ### Example /// \snippet lambda.cpp invoke /// /// ### See Also /// \see lambda, is_invocable template using invoke = metal::apply>; } #endif