11#ifndef CHAISCRIPT_BIND_FIRST_HPP_
12#define CHAISCRIPT_BIND_FIRST_HPP_
33 template<
typename O,
typename Ret,
typename P1,
typename ... Param>
36 return [
f, o](Param...param) ->
Ret {
37 return f(std::forward<O>(o), std::forward<Param>(param)...);
41 template<
typename O,
typename Ret,
typename Class,
typename ... Param>
44 return [
f, o](Param...param) ->
Ret {
45 return (
get_pointer(o)->*
f)(std::forward<Param>(param)...);
49 template<
typename O,
typename Ret,
typename Class,
typename ... Param>
52 return [
f, o](Param...param) ->
Ret {
53 return (
get_pointer(o)->*
f)(std::forward<Param>(param)...);
58 template<
typename O,
typename Ret,
typename P1,
typename ... Param>
61 return [
f, o](Param...param) ->
Ret {
62 return f(o, std::forward<Param>(param)...);
66 template<
typename F,
typename O,
typename Ret,
typename Class,
typename P1,
typename ... Param>
69 return [fo, o,
f](Param ...param) ->
Ret {
70 return (fo.*
f)(o, std::forward<Param>(param)...);
75 template<
typename F,
typename O>
78 return bind_first(
f, std::forward<O>(o), &F::operator());
Classes and functions reserved for internal use. Items in this namespace are not supported.
auto bind_first(Ret(*f)(P1, Param...), O &&o)
Definition bind_first.hpp:34
T * get_pointer(T *t)
Definition bind_first.hpp:22
Namespace chaiscript contains every API call that the average user will be concerned with.
double f(const std::string &, double, bool) noexcept
Definition profile_cpp_calls_2.cpp:4
Definition GameApi_bm.cc:4579