functor2c
Single header templates for wrapping C++ functors as opaque userdata plus function pointers for C interop
 
Loading...
Searching...
No Matches
functor2c.hpp File Reference
#include <functional>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  functor2c
 
namespace  functor2c::detail
 

Functions

template<typename RetType, typename... Args, typename Fn>
std::tuple< void *, RetType(*)(void *, Args...), void(*)(void *)> functor2c::prefix_invoker_deleter (Fn &&fn)
 
template<typename RetType, typename... Args, typename Fn>
std::tuple< void *, RetType(*)(void *, Args...)> functor2c::prefix_invoker_oneshot (Fn &&fn)
 
template<typename RetType, typename... Args, typename Fn>
std::tuple< std::unique_ptr< void, typename detail::destroyable_function< false, RetType, Args... >::deleter >, RetType(*)(void *, Args...)> functor2c::prefix_invoker_unique (Fn &&fn)
 
template<typename RetType, typename... Args, typename Fn>
std::tuple< std::shared_ptr< void >, RetType(*)(void *, Args...)> functor2c::prefix_invoker_shared (Fn &&fn)
 
template<typename RetType, typename... Args, typename Fn>
std::tuple< void *, RetType(*)(Args..., void *), void(*)(void *)> functor2c::suffix_invoker_deleter (Fn &&fn)
 
template<typename RetType, typename... Args, typename Fn>
std::tuple< void *, RetType(*)(Args..., void *)> functor2c::suffix_invoker_oneshot (Fn &&fn)
 
template<typename RetType, typename... Args, typename Fn>
std::tuple< std::unique_ptr< void, typename detail::destroyable_function< false, RetType, Args... >::deleter >, RetType(*)(Args..., void *)> functor2c::suffix_invoker_unique (Fn &&fn)
 
template<typename RetType, typename... Args, typename Fn>
std::tuple< std::shared_ptr< void >, RetType(*)(Args..., void *)> functor2c::suffix_invoker_shared (Fn &&fn)
 
template<typename RetType, typename... Args>
auto functor2c::prefix_invoker_deleter (std::function< RetType(Args...)> &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename Fn>
auto functor2c::prefix_invoker_deleter (Fn &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename RetType, typename... Args>
auto functor2c::prefix_invoker_oneshot (std::function< RetType(Args...)> &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename Fn>
auto functor2c::prefix_invoker_oneshot (Fn &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename RetType, typename... Args>
auto functor2c::prefix_invoker_unique (std::function< RetType(Args...)> &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename Fn>
auto functor2c::prefix_invoker_unique (Fn &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename RetType, typename... Args>
auto functor2c::prefix_invoker_shared (std::function< RetType(Args...)> &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename Fn>
auto functor2c::prefix_invoker_shared (Fn &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename RetType, typename... Args>
auto functor2c::suffix_invoker_deleter (std::function< RetType(Args...)> &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename Fn>
auto functor2c::suffix_invoker_deleter (Fn &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename RetType, typename... Args>
auto functor2c::suffix_invoker_oneshot (std::function< RetType(Args...)> &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename Fn>
auto functor2c::suffix_invoker_oneshot (Fn &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename RetType, typename... Args>
auto functor2c::suffix_invoker_unique (std::function< RetType(Args...)> &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename Fn>
auto functor2c::suffix_invoker_unique (Fn &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename RetType, typename... Args>
auto functor2c::suffix_invoker_shared (std::function< RetType(Args...)> &&fn)
 Overload used for automatic type deduction in C++17.
 
template<typename Fn>
auto functor2c::suffix_invoker_shared (Fn &&fn)
 Overload used for automatic type deduction in C++17.
 

Detailed Description

Single header templates for wrapping C++ functors as opaque userdata plus function pointers for C interop.