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; } \
67#if __cplusplus > 201402L
92class InstancePtrExecutor :
public Executor {
97 virtual bool HasState() {
return true; }
103class InstanceExecutor :
public Executor {
108 virtual bool HasState() {
return true; }
115class IteratorExecutor :
public InstanceExecutor {
125#define CPPYY_DECL_REFEXEC(name) \
126class name##RefExecutor : public RefExecutor { \
128 virtual PyObject* Execute( \
129 Cppyy::TCppMethod_t, Cppyy::TCppObject_t, CallContext*); \
152class InstanceRefExecutor :
public RefExecutor {
162class InstancePtrPtrExecutor :
public InstanceRefExecutor {
164 using InstanceRefExecutor::InstanceRefExecutor;
169class InstancePtrRefExecutor :
public InstanceRefExecutor {
171 using InstanceRefExecutor::InstanceRefExecutor;
176class InstanceArrayExecutor :
public InstancePtrExecutor {
187class FunctionPointerExecutor :
public Executor {
189 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)