1#ifndef CPYCPPYY_DECLAREEXECUTORS_H
2#define CPYCPPYY_DECLAREEXECUTORS_H
10#if __cplusplus > 201402L
19#define CPPYY_DECL_EXEC(name) \
20class name##Executor : public Executor { \
22 virtual PyObject* Execute( \
23 Cppyy::TCppMethod_t, Cppyy::TCppObject_t, CallContext*); \
55#define CPPYY_ARRAY_DECL_EXEC(name) \
56class name##ArrayExecutor : public Executor { \
59 name##ArrayExecutor(dims_t dims) : fShape(dims) {} \
60 virtual PyObject* Execute( \
61 Cppyy::TCppMethod_t, Cppyy::TCppObject_t, CallContext*); \
62 virtual bool HasState() { return true; } \
68#if __cplusplus > 201402L
93class InstancePtrExecutor :
public Executor {
98 virtual bool HasState() {
return true; }
104class InstanceExecutor :
public Executor {
109 virtual bool HasState() {
return true; }
116class IteratorExecutor :
public InstanceExecutor {
124#define CPPYY_DECL_REFEXEC(name) \
125class name##RefExecutor : public RefExecutor { \
127 virtual PyObject* Execute( \
128 Cppyy::TCppMethod_t, Cppyy::TCppObject_t, CallContext*); \
151class InstanceRefExecutor :
public RefExecutor {
161class InstancePtrPtrExecutor :
public InstanceRefExecutor {
163 using InstanceRefExecutor::InstanceRefExecutor;
168class InstancePtrRefExecutor :
public InstanceRefExecutor {
170 using InstanceRefExecutor::InstanceRefExecutor;
175class InstanceArrayExecutor :
public InstancePtrExecutor {
186class FunctionPointerExecutor :
public Executor {
188 FunctionPointerExecutor(
const std::string& ret,
const std::string& sig) :
#define CPPYY_ARRAY_DECL_EXEC(name)
#define CPPYY_DECL_EXEC(name)
#define CPPYY_DECL_REFEXEC(name)
std::ios_base::fmtflags fFlags
Py_ssize_t array_size(const std::string &name)