18 #ifndef INCL_FUNCTIONAL_HPP_
19 #define INCL_FUNCTIONAL_HPP_
23 #include <boost/bind.hpp>
32 struct is_placeholder<
boost::arg<N>> :
public integral_constant<int, N> {};
36 template<
typename Ret,
typename... T>
44 std::function<Ret(T...)>
fcn;
47 template<
typename Ret,
typename... T>
49 return apply<Ret, T...>(fcn);
57 template<
typename Ret,
typename... P>
62 template<
typename Ret,
typename... P>
67 template<
typename Ret,
typename Class,
typename... P>
69 typedef Ret
type(Class,P...);
72 template<
typename Ret,
typename Class,
typename... P>
74 typedef Ret
type(
const Class,P...);
77 template<
typename Ret,
typename Class,
typename... P>
79 typedef Ret
type(
volatile Class,P...);
82 template<
typename Ret,
typename Class,
typename... P>
84 typedef Ret
type(
const volatile Class,P...);
87 template<
typename Ret,
typename... P>
93 template<
typename F,
typename... P>
96 -> decltype(boost::bind(
105 template<
typename F,
typename... P>
apply< Ret, T...> make_apply(std::function< Ret(T...)> fcn)
Ret type(const volatile Class, P...)
GLvoid **typedef void(GLAPIENTRY *PFNGLGETVERTEXATTRIBDVPROC)(GLuint
std::function< Ret(T...)> fcn
typename function_base< decltype(&F::operator())>::type type
apply(std::function< Ret(T...)> fcn)
auto bind_void(F fcn, P...bindings) -> decltype(boost::bind(detail::make_apply(std::function< typename detail::function_base< F >::type >(fcn)), bindings...))
Ret type(volatile Class, P...)
auto bind_void_exact(F fcn, P...bindings) -> decltype(boost::bind(detail::make_apply(std::function< typename detail::function_base< F >::type >(fcn)), bindings...))
Ret type(const Class, P...)
void operator()(T...params)