1#ifndef CPYCPPYY_CPPOVERLOAD_H
2#define CPYCPPYY_CPPOVERLOAD_H
27 hash += (uint64_t)
Py_TYPE(pyobj);
28 hash += (uint64_t)(pyobj->ob_refcnt == 1 ? 1 : 0);
29 hash += (hash << 10); hash ^= (hash >> 6);
32 hash += (hash << 3); hash ^= (hash >> 11); hash += (hash << 15);
61 void Set(
const std::string&
name, std::vector<PyCallable*>& methods);
77#if PY_VERSION_HEX >= 0x03080000
78 vectorcallfunc fVectorCall;
103 const std::string&
name, std::vector<PyCallable*>& methods)
114 std::vector<PyCallable*>
p;
static Py_ssize_t CPyCppyy_PyArgs_GET_SIZE(CPyCppyy_PyArgs_t args, size_t)
PyObject * CPyCppyy_PyArgs_t
static PyObject * CPyCppyy_PyArgs_GET_ITEM(CPyCppyy_PyArgs_t args, Py_ssize_t i)
winID h TVirtualViewer3D TVirtualGLPainter p
void MergeOverload(CPPOverload *meth)
void AdoptMethod(PyCallable *pc)
MethodInfo_t * fMethodInfo
PyObject * FindOverload(const std::string &signature, int want_const=-1)
PyObject_HEAD CPPInstance * fSelf
const std::string & GetName() const
std::vector< PyCallable * > Methods_t
std::vector< std::pair< uint64_t, PyCallable * > > DispatchMap_t
void Set(const std::string &name, std::vector< PyCallable * > &methods)
CPPOverload * CPPOverload_New(const std::string &name, std::vector< PyCallable * > &methods)
bool CPPOverload_Check(T *object)
uint64_t HashSignature(CPyCppyy_PyArgs_t args, size_t nargsf)
PyTypeObject CPPOverload_Type
bool CPPOverload_CheckExact(T *object)
CPPOverload::DispatchMap_t fDispatchMap
MethodInfo_t(const MethodInfo_t &)=delete
MethodInfo_t & operator=(const MethodInfo_t &)=delete
CPPOverload::Methods_t fMethods