5#include <libcopp/utils/config/libcopp_build_features.h>
9LIBCOPP_COTASK_NAMESPACE_BEGIN
15 template <
typename TR,
typename TF>
16 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(TR (TF::*)(void *), TF &fn, void *priv_data) {
16 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(TR (TF::*)(void *), TF &fn, void *priv_data) {
…}
21 template <
typename TR,
typename TF>
22 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(TR (TF::*)(void *) const, const TF &fn, void *priv_data) {
22 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(TR (TF::*)(void *) const, const TF &fn, void *priv_data) {
…}
28 template <
typename TF>
29 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(
int (TF::*)(void *), TF &fn, void *priv_data) {
29 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(
int (TF::*)(void *), TF &fn, void *priv_data) {
…}
33 template <
typename TF>
34 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(
int (TF::*)(void *) const, const TF &fn, void *priv_data) {
34 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(
int (TF::*)(void *) const, const TF &fn, void *priv_data) {
…}
39 template <
typename TR,
typename TF>
40 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(TR (TF::*)(), TF &fn, void * ) {
40 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(TR (TF::*)(), TF &fn, void * ) {
…}
45 template <
typename TR,
typename TF>
46 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(TR (TF::*)() const, const TF &fn, void * ) {
46 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(TR (TF::*)() const, const TF &fn, void * ) {
…}
52 template <
typename TF>
53 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(
int (TF::*)(), TF &fn, void * ) {
53 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(
int (TF::*)(), TF &fn, void * ) {
…}
57 template <
typename TF>
58 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(
int (TF::*)() const, const TF &fn, void * ) {
58 static LIBCOPP_COTASK_API_HEAD_ONLY
int call(
int (TF::*)() const, const TF &fn, void * ) {
…}
70 template <
typename... TARG>
73 template <
typename... TARG>
76 template <
typename... TARG>
85 if (
nullptr == selfp) {
104 template <
class Tz,
bool IS_INTEGRAL>
110 return static_cast<int>((*in.
func_)(priv_data));
117 (*in.
func_)(priv_data);
131 if (
nullptr == selfp) {
144template <
typename Ty,
typename Tc>
150 template <
class Tz,
bool IS_INTEGRAL>
177 if (
nullptr == selfp) {
190template <
typename Ty>
192 if (
nullptr == selfp) {
196 Ty *self =
reinterpret_cast<Ty *
>(selfp);
202template <
typename Ty>
207template <
typename Ty>
212template <
typename Ty,
typename Tc>
218template <
typename Ty>
220 return &placement_destroy<Ty>;
222LIBCOPP_COTASK_NAMESPACE_END
task_action_function(value_type func)
static void placement_destroy(void *selfp)
int operator()(void *priv_data) override
int operator()(void *priv_data) override
static void placement_destroy(void *selfp)
task_action_functor(task_action_functor &&other, TARG &&...)
task_action_functor(TARG &&...arg)
task_action_functor(const task_action_functor &other, TARG &&...)
typename std::decay< Ty >::type value_type
task_action_mem_function(value_type func, Tc *inst)
int operator()(void *priv_data) override
~task_action_mem_function()
static void placement_destroy(void *selfp)
#define LIBCOPP_UTIL_FORCEINLINE
static LIBCOPP_COTASK_API_HEAD_ONLY int call(TR(TF::*)() const, const TF &fn, void *)
static LIBCOPP_COTASK_API_HEAD_ONLY int call(TR(TF::*)(void *), TF &fn, void *priv_data)
static LIBCOPP_COTASK_API_HEAD_ONLY int call(TR(TF::*)(void *) const, const TF &fn, void *priv_data)
static LIBCOPP_COTASK_API_HEAD_ONLY int call(int(TF::*)(void *) const, const TF &fn, void *priv_data)
static LIBCOPP_COTASK_API_HEAD_ONLY int call(int(TF::*)(), TF &fn, void *)
static LIBCOPP_COTASK_API_HEAD_ONLY int call(int(TF::*)() const, const TF &fn, void *)
static LIBCOPP_COTASK_API_HEAD_ONLY int call(int(TF::*)(void *), TF &fn, void *priv_data)
static LIBCOPP_COTASK_API_HEAD_ONLY int call(TR(TF::*)(), TF &fn, void *)
static LIBCOPP_UTIL_FORCEINLINE int invoke(task_action_function &in, void *priv_data)
static LIBCOPP_UTIL_FORCEINLINE int invoke(task_action_function &in, void *priv_data)
static LIBCOPP_UTIL_FORCEINLINE int invoke(task_action_mem_function &in, void *priv_data)
static LIBCOPP_UTIL_FORCEINLINE int invoke(task_action_mem_function &in, void *priv_data)
void(*)(void *) placement_destroy_fn_t
LIBCOPP_COTASK_API_HEAD_ONLY void placement_destroy(void *selfp)
LIBCOPP_COTASK_API_HEAD_ONLY placement_destroy_fn_t get_placement_destroy(task_action_functor< Ty > *)