50#define CPPYY_IMPL_GILCALL(rtype, tcode)                                     \ 
   51static inline rtype GILCall##tcode(                                          \ 
   52    Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext* ctxt)\ 
   54    if (!ReleasesGIL(ctxt))                                                  \ 
   55        return Cppyy::Call##tcode(method, self, ctxt->GetEncodedSize(), ctxt->GetArgs());\ 
   57    return Cppyy::Call##tcode(method, self, ctxt->GetEncodedSize(), ctxt->GetArgs());\ 
   60#define CPPYY_IMPL_GILCALL(rtype, tcode)                                     \ 
   61static inline rtype GILCall##tcode(                                          \ 
   62    Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext* ctxt)\ 
   64    return Cppyy::Call##tcode(method, self, ctxt->GetEncodedSize(), ctxt->GetArgs());\ 
 
  144PyObject* CPyCppyy::BoolExecutor::Execute(
 
  155PyObject* CPyCppyy::BoolConstRefExecutor::Execute(
 
  163PyObject* CPyCppyy::CharExecutor::Execute(
 
  172PyObject* CPyCppyy::CharConstRefExecutor::Execute(
 
  181PyObject* CPyCppyy::UCharExecutor::Execute(
 
  190PyObject* CPyCppyy::UCharConstRefExecutor::Execute(
 
  199PyObject* CPyCppyy::WCharExecutor::Execute(
 
  209PyObject* CPyCppyy::Char16Executor::Execute(
 
  219PyObject* CPyCppyy::Char32Executor::Execute(
 
  229PyObject* CPyCppyy::IntExecutor::Execute(
 
  237PyObject* CPyCppyy::Int8Executor::Execute(
 
  245PyObject* CPyCppyy::UInt8Executor::Execute(
 
  253PyObject* CPyCppyy::ShortExecutor::Execute(
 
  261PyObject* CPyCppyy::LongExecutor::Execute(
 
  269PyObject* CPyCppyy::ULongExecutor::Execute(
 
  277PyObject* CPyCppyy::LongLongExecutor::Execute(
 
  286PyObject* CPyCppyy::ULongLongExecutor::Execute(
 
  295PyObject* CPyCppyy::FloatExecutor::Execute(
 
  303PyObject* CPyCppyy::DoubleExecutor::Execute(
 
  311PyObject* CPyCppyy::LongDoubleExecutor::Execute(
 
  328    fAssignable = 
nullptr;
 
 
  333#define CPPYY_IMPL_REFEXEC(name, type, stype, F1, F2)                        \ 
  334PyObject* CPyCppyy::name##RefExecutor::Execute(                              \ 
  335    Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CallContext* ctxt) \ 
  337    type* ref = (type*)GILCallR(method, self, ctxt);                         \ 
  339        PyErr_SetString(PyExc_ReferenceError, "attempt to access a null-pointer");\ 
  343        return F1((stype)*ref);                                              \ 
  345        *ref = (type)F2(fAssignable);                                        \ 
  346        Py_DECREF(fAssignable);                                              \ 
  347        fAssignable = nullptr;                                               \ 
  348        if (*ref == (type)-1 && PyErr_Occurred())                            \ 
  350        Py_INCREF(Py_None);                                                  \ 
 
  380    return std::complex<T>(
cplx.real, 
cplx.imag);
 
 
  388PyObject* CPyCppyy::STLStringRefExecutor::Execute(
 
  401    fAssignable = 
nullptr;
 
  407PyObject* CPyCppyy::VoidExecutor::Execute(
 
  417PyObject* CPyCppyy::CStringExecutor::Execute(
 
  431PyObject* CPyCppyy::CStringRefExecutor::Execute(
 
  445PyObject* CPyCppyy::WCStringExecutor::Execute(
 
  459PyObject* CPyCppyy::CString16Executor::Execute(
 
  470        std::char_traits<char16_t>::length(
result)*
sizeof(
char16_t), 
nullptr, 
nullptr);
 
  474PyObject* CPyCppyy::CString32Executor::Execute(
 
  485        std::char_traits<char32_t>::length(
result)*
sizeof(
char32_t), 
nullptr, 
nullptr);
 
  490PyObject* CPyCppyy::VoidArrayExecutor::Execute(
 
  503#define CPPYY_IMPL_ARRAY_EXEC(name, type, suffix)                            \ 
  504PyObject* CPyCppyy::name##ArrayExecutor::Execute(                            \ 
  505    Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CallContext* ctxt) \ 
  507    return CreateLowLevelView##suffix((type*)GILCallR(method, self, ctxt), fShape);  \ 
 
  513#if (__cplusplus > 201402L) || (defined(_MSC_VER) && _MSVC_LANG > 201402L) 
  535#define CPPYY_COMPLEX_EXEC(code, type)                                       \ 
  536PyObject* CPyCppyy::Complex##code##Executor::Execute(                        \ 
  537    Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CallContext* ctxt) \ 
  539    static Cppyy::TCppScope_t scopeid = Cppyy::GetScope("std::complex<"#type">");\ 
  540    std::complex<type>* result =                                             \ 
  541        (std::complex<type>*)GILCallO(method, self, ctxt, scopeid);          \ 
  543        PyErr_SetString(PyExc_ValueError, "NULL result where temporary expected");\ 
  547    PyObject* pyres = PyComplex_FromDoubles(result->real(), result->imag()); \ 
  548    ::operator delete(result);        \ 
 
  555PyObject* CPyCppyy::STLStringExecutor::Execute(
 
  576PyObject* CPyCppyy::STLWStringExecutor::Execute(
 
  594PyObject* CPyCppyy::InstancePtrExecutor::Execute(
 
  609PyObject* CPyCppyy::InstanceExecutor::Execute(
 
  634    InstanceExecutor(
klass)
 
  641PyObject* CPyCppyy::InstanceRefExecutor::Execute(
 
  646    if (!
result || !fAssignable)
 
  662            Py_DECREF(fAssignable); fAssignable = 
nullptr;
 
  670        Py_DECREF(fAssignable); fAssignable = 
nullptr;
 
  693PyObject* CPyCppyy::InstancePtrPtrExecutor::Execute(
 
  710    fAssignable = 
nullptr;
 
  716PyObject* CPyCppyy::InstancePtrRefExecutor::Execute(
 
  732    fAssignable = 
nullptr;
 
  739PyObject* CPyCppyy::InstanceArrayExecutor::Execute(
 
  748PyObject* CPyCppyy::ConstructorExecutor::Execute(
 
  757PyObject* CPyCppyy::PyObjectExecutor::Execute(
 
  765PyObject* CPyCppyy::FunctionPointerExecutor::Execute(
 
  794        return (
h->second)(
dims);
 
  803              return (
h->second)(
dims);
 
  814        return (
h->second)(
dims);
 
  822            return (
h->second)(
dims);
 
  826    if (!
cpd.empty() && (std::string::size_type)std::count(
cpd.
begin(), 
cpd.
end(), 
'*') == 
cpd.size()) {
 
  836            return (
h->second)(
dims);
 
  844                return new IteratorExecutor(
klass);
 
  851        else if (
cpd == 
"**" || 
cpd == 
"*[]" || 
cpd == 
"&*")
 
  853        else if (
cpd == 
"*&")
 
  855        else if (
cpd == 
"[]") {
 
  863    } 
else if (
resolvedType.find(
"(*)") != std::string::npos ||
 
  870        result = 
new FunctionPointerExecutor(
 
 
  888    if (
p && 
p->HasState())
 
 
  948#define WSTRING1 "std::basic_string<wchar_t>" 
  949#define WSTRING2 "std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>" 
  953#define CCOMPLEX_D "_Complex double" 
  954#define CCOMPLEX_F "_Complex float" 
  956#define CCOMPLEX_D "_C_double_complex" 
  957#define CCOMPLEX_F "_C_float_complex" 
  960struct InitExecFactories_t {
 
  962    InitExecFactories_t() {
 
  967        gf[
"bool"] =                        (
ef_t)+[](
cdims_t) { 
static BoolExecutor 
e{};          
return &
e; };
 
  968        gf[
"bool&"] =                       (
ef_t)+[](
cdims_t) { 
return new BoolRefExecutor{}; };
 
  969        gf[
"const bool&"] =                 (
ef_t)+[](
cdims_t) { 
static BoolConstRefExecutor 
e{};  
return &
e; };
 
  970        gf[
"char"] =                        (
ef_t)+[](
cdims_t) { 
static CharExecutor 
e{};          
return &
e; };
 
  971        gf[
"signed char"] =                 
gf[
"char"];
 
  972        gf[
"unsigned char"] =               (
ef_t)+[](
cdims_t) { 
static UCharExecutor 
e{};         
return &
e; };
 
  973        gf[
"char&"] =                       (
ef_t)+[](
cdims_t) { 
return new CharRefExecutor{}; };
 
  974        gf[
"signed char&"] =                
gf[
"char&"];
 
  975        gf[
"unsigned char&"] =              (
ef_t)+[](
cdims_t) { 
return new UCharRefExecutor{}; };
 
  976        gf[
"const char&"] =                 (
ef_t)+[](
cdims_t) { 
static CharConstRefExecutor 
e{};  
return &
e; };
 
  977        gf[
"const signed char&"] =          
gf[
"const char&"];
 
  978        gf[
"const unsigned char&"] =        (
ef_t)+[](
cdims_t) { 
static UCharConstRefExecutor 
e{}; 
return &
e; };
 
  979        gf[
"wchar_t"] =                     (
ef_t)+[](
cdims_t) { 
static WCharExecutor 
e{};         
return &
e; };
 
  980        gf[
"char16_t"] =                    (
ef_t)+[](
cdims_t) { 
static Char16Executor 
e{};        
return &
e; };
 
  981        gf[
"char32_t"] =                    (
ef_t)+[](
cdims_t) { 
static Char32Executor 
e{};        
return &
e; };
 
  982        gf[
"int8_t"] =                      (
ef_t)+[](
cdims_t) { 
static Int8Executor 
e{};          
return &
e; };
 
  983        gf[
"int8_t&"] =                     (
ef_t)+[](
cdims_t) { 
return new Int8RefExecutor{}; };
 
  984        gf[
"const int8_t&"] =               (
ef_t)+[](
cdims_t) { 
static Int8RefExecutor 
e{};       
return &
e; };
 
  985        gf[
"uint8_t"] =                     (
ef_t)+[](
cdims_t) { 
static UInt8Executor 
e{};         
return &
e; };
 
  986        gf[
"uint8_t&"] =                    (
ef_t)+[](
cdims_t) { 
return new UInt8RefExecutor{}; };
 
  987        gf[
"const uint8_t&"] =              (
ef_t)+[](
cdims_t) { 
static UInt8RefExecutor 
e{};      
return &
e; };
 
  988        gf[
"short"] =                       (
ef_t)+[](
cdims_t) { 
static ShortExecutor 
e{};         
return &
e; };
 
  989        gf[
"short&"] =                      (
ef_t)+[](
cdims_t) { 
return new ShortRefExecutor{}; };
 
  991        gf[
"int&"] =                        (
ef_t)+[](
cdims_t) { 
return new IntRefExecutor{}; };
 
  992        gf[
"unsigned short"] =              
gf[
"int"];
 
  993        gf[
"unsigned short&"] =             (
ef_t)+[](
cdims_t) { 
return new UShortRefExecutor{}; };
 
  994        gf[
"unsigned long"] =               (
ef_t)+[](
cdims_t) { 
static ULongExecutor 
e{};         
return &
e; };
 
  995        gf[
"unsigned long&"] =              (
ef_t)+[](
cdims_t) { 
return new ULongRefExecutor{}; };
 
  996        gf[
"unsigned int"] =                
gf[
"unsigned long"];
 
  997        gf[
"unsigned int&"] =               (
ef_t)+[](
cdims_t) { 
return new UIntRefExecutor{}; };
 
  998        gf[
"long"] =                        (
ef_t)+[](
cdims_t) { 
static LongExecutor 
e{};          
return &
e; };
 
  999        gf[
"long&"] =                       (
ef_t)+[](
cdims_t) { 
return new LongRefExecutor{}; };
 
 1000        gf[
"unsigned long"] =               (
ef_t)+[](
cdims_t) { 
static ULongExecutor 
e{};         
return &
e; };
 
 1001        gf[
"unsigned long&"] =              (
ef_t)+[](
cdims_t) { 
return new ULongRefExecutor{}; };
 
 1002        gf[
"long long"] =                   (
ef_t)+[](
cdims_t) { 
static LongLongExecutor 
e{};      
return &
e; };
 
 1003        gf[
"long long&"] =                  (
ef_t)+[](
cdims_t) { 
return new LongLongRefExecutor{}; };
 
 1004        gf[
"unsigned long long"] =          (
ef_t)+[](
cdims_t) { 
static ULongLongExecutor 
e{};     
return &
e; };
 
 1005        gf[
"unsigned long long&"] =         (
ef_t)+[](
cdims_t) { 
return new ULongLongRefExecutor{}; };
 
 1007        gf[
"float"] =                       (
ef_t)+[](
cdims_t) { 
static FloatExecutor 
e{};      
return &
e; };
 
 1008        gf[
"float&"] =                      (
ef_t)+[](
cdims_t) { 
return new FloatRefExecutor{}; };
 
 1009        gf[
"double"] =                      (
ef_t)+[](
cdims_t) { 
static DoubleExecutor 
e{};     
return &
e; };
 
 1010        gf[
"double&"] =                     (
ef_t)+[](
cdims_t) { 
return new DoubleRefExecutor{}; };
 
 1011        gf[
"long double"] =                 (
ef_t)+[](
cdims_t) { 
static LongDoubleExecutor 
e{}; 
return &
e; }; 
 
 1012        gf[
"long double&"] =                (
ef_t)+[](
cdims_t) { 
return new LongDoubleRefExecutor{}; };
 
 1013        gf[
"std::complex<double>"] =        (
ef_t)+[](
cdims_t) { 
static ComplexDExecutor 
e{};    
return &
e; };
 
 1014        gf[
"std::complex<double>&"] =       (
ef_t)+[](
cdims_t) { 
return new ComplexDRefExecutor{}; };
 
 1015        gf[
"void"] =                        (
ef_t)+[](
cdims_t) { 
static VoidExecutor 
e{};       
return &
e; };
 
 1018        gf[
"void ptr"] =                    (
ef_t)+[](
cdims_t d) { 
return new VoidArrayExecutor{
d};     };
 
 1019        gf[
"bool ptr"] =                    (
ef_t)+[](
cdims_t d) { 
return new BoolArrayExecutor{
d};     };
 
 1020        gf[
"unsigned char ptr"] =           (
ef_t)+[](
cdims_t d) { 
return new UCharArrayExecutor{
d};    };
 
 1021        gf[
"const unsigned char ptr"] =     
gf[
"unsigned char ptr"];
 
 1022#if (__cplusplus > 201402L) || (defined(_MSC_VER) && _MSVC_LANG > 201402L) 
 1024        gf[
"const std::byte ptr"] =         
gf[
"std::byte ptr"];
 
 1025        gf[
"byte ptr"] =                    
gf[
"std::byte ptr"];
 
 1026        gf[
"const byte ptr"] =              
gf[
"std::byte ptr"];
 
 1028        gf[
"int8_t ptr"] =                  (
ef_t)+[](
cdims_t d) { 
return new Int8ArrayExecutor{
d};    };
 
 1029        gf[
"uint8_t ptr"] =                 (
ef_t)+[](
cdims_t d) { 
return new UInt8ArrayExecutor{
d};   };
 
 1030        gf[
"short ptr"] =                   (
ef_t)+[](
cdims_t d) { 
return new ShortArrayExecutor{
d};    };
 
 1031        gf[
"unsigned short ptr"] =          (
ef_t)+[](
cdims_t d) { 
return new UShortArrayExecutor{
d};   };
 
 1032        gf[
"int ptr"] =                     (
ef_t)+[](
cdims_t d) { 
return new IntArrayExecutor{
d};      };
 
 1033        gf[
"unsigned int ptr"] =            (
ef_t)+[](
cdims_t d) { 
return new UIntArrayExecutor{
d};     };
 
 1034        gf[
"long ptr"] =                    (
ef_t)+[](
cdims_t d) { 
return new LongArrayExecutor{
d};     };
 
 1035        gf[
"unsigned long ptr"] =           (
ef_t)+[](
cdims_t d) { 
return new ULongArrayExecutor{
d};    };
 
 1036        gf[
"long long ptr"] =               (
ef_t)+[](
cdims_t d) { 
return new LLongArrayExecutor{
d};    };
 
 1037        gf[
"unsigned long long ptr"] =      (
ef_t)+[](
cdims_t d) { 
return new ULLongArrayExecutor{
d};   };
 
 1038        gf[
"float ptr"] =                   (
ef_t)+[](
cdims_t d) { 
return new FloatArrayExecutor{
d};    };
 
 1039        gf[
"double ptr"] =                  (
ef_t)+[](
cdims_t d) { 
return new DoubleArrayExecutor{
d};   };
 
 1040        gf[
"std::complex<float> ptr"] =     (
ef_t)+[](
cdims_t d) { 
return new ComplexFArrayExecutor{
d}; };
 
 1041        gf[
"std::complex<double> ptr"] =    (
ef_t)+[](
cdims_t d) { 
return new ComplexDArrayExecutor{
d}; };
 
 1042        gf[
"std::complex<int> ptr"] =       (
ef_t)+[](
cdims_t d) { 
return new ComplexIArrayExecutor{
d}; };
 
 1043        gf[
"std::complex<long> ptr"] =      (
ef_t)+[](
cdims_t d) { 
return new ComplexLArrayExecutor{
d}; };
 
 1046        gf[
"internal_enum_type_t"] =        
gf[
"int"];
 
 1047        gf[
"internal_enum_type_t&"] =       
gf[
"int&"];
 
 1048        gf[
"internal_enum_type_t ptr"] =    
gf[
"int ptr"];
 
 1049#if (__cplusplus > 201402L) || (defined(_MSC_VER) && _MSVC_LANG > 201402L) 
 1050        gf[
"std::byte"] =                   
gf[
"uint8_t"];
 
 1051        gf[
"byte"] =                        
gf[
"uint8_t"];
 
 1052        gf[
"std::byte&"] =                  
gf[
"uint8_t&"];
 
 1053        gf[
"byte&"] =                       
gf[
"uint8_t&"];
 
 1054        gf[
"const std::byte&"] =            
gf[
"const uint8_t&"];
 
 1055        gf[
"const byte&"] =                 
gf[
"const uint8_t&"];
 
 1057        gf[
"std::int8_t"] =                 
gf[
"int8_t"];
 
 1058        gf[
"std::int8_t&"] =                
gf[
"int8_t&"];
 
 1059        gf[
"const std::int8_t&"] =          
gf[
"const int8_t&"];
 
 1060        gf[
"std::int8_t ptr"] =             
gf[
"int8_t ptr"];
 
 1061        gf[
"std::uint8_t"] =                
gf[
"uint8_t"];
 
 1062        gf[
"std::uint8_t&"] =               
gf[
"uint8_t&"];
 
 1063        gf[
"const std::uint8_t&"] =         
gf[
"const uint8_t&"];
 
 1064        gf[
"std::uint8_t ptr"] =            
gf[
"uint8_t ptr"];
 
 1066        gf[
"__int64"] =                     
gf[
"long long"];
 
 1067        gf[
"__int64&"] =                    
gf[
"long long&"];
 
 1068        gf[
"__int64 ptr"] =                 
gf[
"long long ptr"];
 
 1069        gf[
"unsigned __int64"] =            
gf[
"unsigned long long"];
 
 1070        gf[
"unsigned __int64&"] =           
gf[
"unsigned long long&"];
 
 1071        gf[
"unsigned __int64 ptr"] =        
gf[
"unsigned long long ptr"];
 
 1079        gf[
"const char*"] =                 (
ef_t)+[](
cdims_t) { 
static CStringExecutor 
e{};     
return &
e; };
 
 1080        gf[
"char*"] =                       
gf[
"const char*"];
 
 1081        gf[
"const char*&"] =                (
ef_t)+[](
cdims_t) { 
static CStringRefExecutor 
e{};     
return &
e; };
 
 1082        gf[
"char*&"] =                      
gf[
"const char*&"];
 
 1083        gf[
"const signed char*"] =          
gf[
"const char*"];
 
 1085        gf[
"signed char ptr"] =             (
ef_t)+[](
cdims_t d) { 
return new SCharArrayExecutor{
d};    };
 
 1086        gf[
"wchar_t*"] =                    (
ef_t)+[](
cdims_t) { 
static WCStringExecutor 
e{};    
return &
e;};
 
 1087        gf[
"char16_t*"] =                   (
ef_t)+[](
cdims_t) { 
static CString16Executor 
e{};   
return &
e;};
 
 1088        gf[
"char32_t*"] =                   (
ef_t)+[](
cdims_t) { 
static CString32Executor 
e{};   
return &
e;};
 
 1089        gf[
"std::string"] =                 (
ef_t)+[](
cdims_t) { 
static STLStringExecutor 
e{};   
return &
e; };
 
 1090        gf[
"string"] =                      
gf[
"std::string"];
 
 1091        gf[
"std::string&"] =                (
ef_t)+[](
cdims_t) { 
return new STLStringRefExecutor{}; };
 
 1092        gf[
"string&"] =                     
gf[
"std::string&"];
 
 1093        gf[
"std::wstring"] =                (
ef_t)+[](
cdims_t) { 
static STLWStringExecutor 
e{};  
return &
e; };
 
 1096        gf[
"__init__"] =                    (
ef_t)+[](
cdims_t) { 
static ConstructorExecutor 
e{}; 
return &
e; };
 
 1097        gf[
"PyObject*"] =                   (
ef_t)+[](
cdims_t) { 
static PyObjectExecutor 
e{};    
return &
e; };
 
 1098        gf[
"_object*"] =                    
gf[
"PyObject*"];
 
 1099        gf[
"FILE*"] =                       
gf[
"void ptr"];
 
#define CPyCppyy_PyText_FromStringAndSize
 
#define CPyCppyy_PyText_AsString
 
#define CPyCppyy_PyText_GET_SIZE
 
#define CPyCppyy_PyText_FromFormat
 
#define CPyCppyy_PyText_CheckExact
 
#define CPyCppyy_PyText_FromString
 
long double PY_LONG_DOUBLE
 
unsigned long long PY_ULONG_LONG
 
static PyObject * PyComplex_FromComplex(const std::complex< T > &c)
 
static char GILCallC(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
static float GILCallF(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
static PyObject * CPyCppyy_PyText_FromLong(long cl)
 
static PyObject * SetInstanceCheckError(PyObject *pyobj)
 
static std::complex< T > PyComplex_AsComplex(PyObject *pycplx)
 
static Cppyy::TCppObject_t GILCallO(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt, Cppyy::TCppType_t klass)
 
static PY_LONG_DOUBLE GILCallLD(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
#define CPPYY_IMPL_GILCALL(rtype, tcode)
 
static Cppyy::TCppObject_t GILCallConstructor(Cppyy::TCppMethod_t method, Cppyy::TCppType_t klass, CPyCppyy::CallContext *ctxt)
 
static long GILCallL(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
#define CPPYY_COMPLEX_EXEC(code, type)
 
static short GILCallH(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
static PyObject * CPyCppyy_PyText_FromULong(unsigned long uc)
 
static PyObject * CPyCppyy_PyBool_FromLong(long b)
 
static void GILCallV(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
static PY_LONG_LONG GILCallLL(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
#define CPPYY_IMPL_ARRAY_EXEC(name, type, suffix)
 
static void * GILCallR(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
#define CPPYY_IMPL_REFEXEC(name, type, stype, F1, F2)
 
static unsigned char GILCallB(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
static double GILCallD(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
static int GILCallI(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, CPyCppyy::CallContext *ctxt)
 
std::ios_base::fmtflags fFlags
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t target
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void gc
 
virtual bool SetAssignable(PyObject *)
 
const_iterator begin() const
 
const_iterator end() const
 
std::string remove_const(const std::string &cppname)
 
Py_ssize_t array_size(const std::string &name)
 
std::string clean_type(const std::string &cppname, bool template_strip=true, bool const_strip=true)
 
std::string compound(const std::string &name)
 
PyObject * FuncPtr2StdFunction(const std::string &retType, const std::string &signature, void *address)
 
bool IsSTLIterator(const std::string &classname)
 
unsigned long PyLongOrInt_AsULong(PyObject *pyobject)
 
CPYCPPYY_EXTERN bool UnregisterExecutor(const std::string &name)
 
CPYCPPYY_EXTERN bool RegisterExecutorAlias(const std::string &name, const std::string &target)
 
PyObject * BindCppObjectNoCast(Cppyy::TCppObject_t object, Cppyy::TCppType_t klass, const unsigned flags=0)
 
CPYCPPYY_EXPORT void DestroyExecutor(Executor *p)
 
CPYCPPYY_EXTERN bool RegisterExecutor(const std::string &name, ExecutorFactory_t)
 
CPYCPPYY_EXTERN Executor * CreateExecutor(const std::string &name, cdims_t=0)
 
std::map< std::string, ef_t > ExecFactories_t
 
PY_ULONG_LONG PyLongOrInt_AsULong64(PyObject *pyobject)
 
bool CPPInstance_Check(T *object)
 
Executor *(* ef_t)(cdims_t)
 
PyObject * BindCppObjectArray(Cppyy::TCppObject_t address, Cppyy::TCppType_t klass, cdims_t dims)
 
PyObject * CreatePointerView(void *ptr, cdims_t shape=0)
 
PyObject * gNullPtrObject
 
static ExecFactories_t gExecFactories
 
std::set< std::string > gIteratorTypes
 
PyObject * BindCppObject(Cppyy::TCppObject_t object, Cppyy::TCppType_t klass, const unsigned flags=0)
 
CPYCPPYY_EXTERN void * CallVoidP(Cppyy::TCppMethod_t, Cppyy::TCppObject_t, CallContext *)
 
bool ReleasesGIL(CallContext *ctxt)
 
RPY_EXPORTED TCppObject_t CallO(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args, TCppType_t result_type)
 
RPY_EXPORTED TCppObject_t CallConstructor(TCppMethod_t method, TCppType_t type, size_t nargs, void *args)
 
RPY_EXPORTED std::string ResolveName(const std::string &cppitem_name)
 
RPY_EXPORTED TCppScope_t GetScope(const std::string &scope_name)
 
RooArgList L(Args_t &&... args)