70    return (pos == 0 || pos == 5) && 
name.find(
"::", 
name.rfind(
">")) == std::string::npos;
 
   89        obj, 
const_cast<char*
>(
meth), 
const_cast<char*
>(
"O"), 
arg1);
 
  103    if (idx >= 
size || (idx < 0 && idx < -
size)) {
 
  122    if ((step > 0 && stop <= start) || (step < 0 && start <= stop))
 
  125    if (start < 0) start = 0;
 
  129    stop = step > 0 ? std::min(
nlen, stop) : (stop >= 0 ? stop : -1);
 
  220#if PY_VERSION_HEX < 0x03040000 
  221#define PyObject_LengthHint _PyObject_LengthHint 
  233struct CountedItemGetter : 
public ItemGetter {
 
  238struct TupleItemGetter : 
public CountedItemGetter {
 
  239    using CountedItemGetter::CountedItemGetter;
 
  252struct ListItemGetter : 
public CountedItemGetter {
 
  253    using CountedItemGetter::CountedItemGetter;
 
  266struct SequenceItemGetter : 
public CountedItemGetter {
 
  267    using CountedItemGetter::CountedItemGetter;
 
  279struct IterItemGetter : 
public ItemGetter {
 
  280    using ItemGetter::ItemGetter;
 
  285static ItemGetter* GetGetter(
PyObject* args)
 
  288    ItemGetter* 
getter = 
nullptr;
 
  306            getter = 
new SequenceItemGetter(
fi);
 
  310                getter = 
new IterItemGetter{iter};
 
  354            for (
int i = 0; ; ++i) {
 
  431    ItemGetter* 
getter = GetGetter(args);
 
  483    ItemGetter* 
getter = GetGetter(args);
 
  563    if (!
vi) 
return nullptr;
 
  566    vi->ii_container = 
v;
 
  599                vi->vi_converter = 
nullptr;
 
  601                    if (value_type.back() != 
'*')     
 
  610            vi->vi_converter = 
nullptr;
 
  622        vi->vi_data      = 
nullptr;
 
  624        vi->vi_converter = 
nullptr;
 
  642        if (!
self->GetObject()) {
 
  681            "require object of type std::vector<bool>, but %s given",
 
  686    if (!
self->GetObject()) {
 
  721    std::vector<bool>* 
vb = (std::vector<bool>*)
self->GetObject();
 
  735            "require object of type std::vector<bool>, but %s given",
 
  740    if (!
self->GetObject()) {
 
  757    std::vector<bool>* 
vb = (std::vector<bool>*)
self->GetObject();
 
  865#if PY_VERSION_HEX < 0x03000000 
  943            IterItemGetter 
getter{iter};
 
 1041    if (!
ii) 
return nullptr;
 
 1044    ii->ii_container = 
c;
 
 1097    else if ((
int)idx == 1)
 
 1130#if PY_VERSION_HEX >= 0x03000000 
 1154#define CPPYY_IMPL_STRING_PYTHONIZATION(type, name)                          \ 
 1156PyObject* name##StringGetData(PyObject* self, bool native=true)              \ 
 1158    if (CPyCppyy::CPPInstance_Check(self)) {                                 \ 
 1159        type* obj = ((type*)((CPPInstance*)self)->GetObject());              \ 
 1160        if (obj) return CPyCppyy_PyString_FromCppString(*obj, native);        \ 
 1162    PyErr_Format(PyExc_TypeError, "object mismatch (%s expected)", #type);   \ 
 1166PyObject* name##StringStr(PyObject* self)                                    \ 
 1168    PyObject* pyobj = name##StringGetData(self, false);                      \ 
 1172        PyObject* pybytes = name##StringGetData(self, true);                 \ 
 1174            pyobj = PyObject_Str(pybytes);                                   \ 
 1175            Py_DECREF(pybytes);                                              \ 
 1181PyObject* name##StringBytes(PyObject* self)                                  \ 
 1183    return name##StringGetData(self, true);                                  \ 
 1186PyObject* name##StringRepr(PyObject* self)                                   \ 
 1188    PyObject* data = name##StringGetData(self, true);                        \ 
 1190        PyObject* repr = PyObject_Repr(data);                                \ 
 1197PyObject* name##StringIsEqual(PyObject* self, PyObject* obj)                 \ 
 1199    PyObject* data = name##StringGetData(self, PyBytes_Check(obj));          \ 
 1201        PyObject* result = PyObject_RichCompare(data, obj, Py_EQ);           \ 
 1208PyObject* name##StringIsNotEqual(PyObject* self, PyObject* obj)              \ 
 1210    PyObject* data = name##StringGetData(self, PyBytes_Check(obj));          \ 
 1212        PyObject* result = PyObject_RichCompare(data, obj, Py_NE);           \ 
 
 1220#define CPPYY_IMPL_STRING_PYTHONIZATION_CMP(type, name)                      \ 
 1221CPPYY_IMPL_STRING_PYTHONIZATION(type, name)                                  \ 
 1222PyObject* name##StringCompare(PyObject* self, PyObject* obj)                 \ 
 1224    PyObject* data = name##StringGetData(self, PyBytes_Check(obj));          \ 
 1227        result = PyObject_Compare(data, obj);                                \ 
 1230    if (PyErr_Occurred())                                                    \ 
 1232    return PyInt_FromLong(result);                                           \ 
 
 1245    std::string* obj = (std::string*)
self->GetObject();
 
 1258    char* 
keywords[] = {(
char*)
"encoding", (
char*)
"errors", (
char*)
nullptr};
 
 1259    const char* encoding = 
nullptr; 
const char* 
errors = 
nullptr;
 
 1277    if (obj->find(
needle) != std::string::npos) {
 
 1314#define CPYCPPYY_STRING_FINDMETHOD(name, cppname, pyname)                    \ 
 1315PyObject* STLString##name(CPPInstance* self, PyObject* args, PyObject* ) \ 
 1317    std::string* obj = GetSTLString(self);                                   \ 
 1321    PyObject* cppmeth = PyObject_GetAttrString((PyObject*)self, (char*)#cppname);\ 
 1323        PyObject* result = PyObject_Call(cppmeth, args, nullptr);            \ 
 1324        Py_DECREF(cppmeth);                                                  \ 
 1326            if (PyLongOrInt_AsULong64(result) == (PY_ULONG_LONG)std::string::npos) {\ 
 1327                Py_DECREF(result);                                           \ 
 1328                return PyInt_FromLong(-1);                                   \ 
 1335    PyObject* pystr = CPyCppyy_PyText_FromStringAndSize(obj->data(), obj->size());\ 
 1336    PyObject* pymeth = PyObject_GetAttrString(pystr, (char*)#pyname);        \ 
 1338    PyObject* result = PyObject_CallObject(pymeth, args);                    \ 
 1339    Py_DECREF(pymeth);                                                       \ 
 
 1445        for (
auto& 
p: 
dmc) {
 
 1492#define COMPLEX_METH_GETSET(name, cppname)                                   \ 
 1493static PyObject* name##ComplexGet(PyObject* self, void*) {                   \ 
 1494    return PyObject_CallMethodNoArgs(self, cppname);                         \ 
 1496static int name##ComplexSet(PyObject* self, PyObject* value, void*) {        \ 
 1497    PyObject* result = PyObject_CallMethodOneArg(self, cppname, value);      \ 
 1499        Py_DECREF(result);                                                   \ 
 1504PyGetSetDef name##Complex{(char*)#name, (getter)name##ComplexGet, (setter)name##ComplexSet, nullptr, nullptr}; 
 
 1511    if (!
real) 
return nullptr;
 
 1518    if (!
imag) 
return nullptr;
 
 1529    if (!
real) 
return nullptr;
 
 1536    if (!
imag) 
return nullptr;
 
 1542    std::ostringstream s;
 
 1543    s << 
'(' << 
r << 
'+' << i << 
"j)";
 
 1557    ((std::complex<double>*)
self->GetObject())->
real(
d);
 
 1574    ((std::complex<double>*)
self->GetObject())->
imag(
d);
 
 1582    double r = ((std::complex<double>*)
self->GetObject())->
real();
 
 1583    double i = ((std::complex<double>*)
self->GetObject())->
imag();
 
 1639#if PY_VERSION_HEX >= 0x03000000 
 1667                    if (
resname.find(
"iterator") == std::string::npos)
 
 1749        name.compare(0, 6, 
"tuple<", 6) != 0) {
 
 1758            initdef << 
"namespace __cppyy_internal {\n" 
 1759                    << 
"void init_" << 
rname << 
"(" << 
name << 
"*& self";
 
 1772                if (
res_clean == 
"internal_enum_type_t")
 
 1775                if (res.rfind(
']') == std::string::npos && res.rfind(
')') == std::string::npos) {
 
 1777                    else arg_types.push_back(
"const "+
res_clean+
"&");
 
 1793                for (std::vector<std::string>::size_type i = 0; i < arg_types.size(); ++i) {
 
 1798                for (std::vector<std::string>::size_type i = 0; i < 
arg_names.size(); ++i) {
 
 1860            if (
vtype.rfind(
"value_type") == std::string::npos) {    
 
 1915    else if (
name == 
"string" || 
name == 
"std::string") { 
 
 1936    else if (
name == 
"basic_string_view<char,char_traits<char> >" || 
name == 
"std::basic_string_view<char>") {
 
 1947    else if (
name == 
"basic_string<wchar_t,char_traits<wchar_t>,allocator<wchar_t> >" || 
name == 
"std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >") {
 
 1956    else if (
name == 
"complex<double>" || 
name == 
"std::complex<double>") {
 
 
#define PyInt_FromSsize_t
 
#define CPyCppyy_PyText_FromStringAndSize
 
#define CPyCppyy_PySliceCast
 
#define CPyCppyy_PyText_AsString
 
static PyObject * PyObject_CallMethodOneArg(PyObject *obj, PyObject *name, PyObject *arg)
 
#define PyBytes_FromStringAndSize
 
#define CPyCppyy_PyText_Type
 
static PyObject * PyObject_CallMethodNoArgs(PyObject *obj, PyObject *name)
 
#define CPyCppyy_PyText_FromString
 
#define CPyCppyy_PyText_Check
 
#define CPPYY_IMPL_STRING_PYTHONIZATION_CMP(type, name)
 
static bool run_pythonizors(PyObject *pyclass, PyObject *pyname, const std::vector< PyObject * > &v)
 
#define COMPLEX_METH_GETSET(name, cppname)
 
#define CPYCPPYY_STRING_FINDMETHOD(name, cppname, pyname)
 
#define PyObject_LengthHint
 
std::ios_base::fmtflags fFlags
 
void FillVector(std::vector< double > &v, int size, T *a)
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
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 data
 
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 r
 
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 char Point_t Rectangle_t WindowAttributes_t index
 
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 char Point_t Rectangle_t WindowAttributes_t attr
 
const_iterator end() const
 
void cppscope_to_legalname(std::string &cppscope)
 
std::string clean_type(const std::string &cppname, bool template_strip=true, bool const_strip=true)
 
std::string compound(const std::string &name)
 
std::string extract_namespace(const std::string &name)
 
Py_ssize_t GetBuffer(PyObject *pyobject, char tc, int size, void *&buf, bool check=true)
 
bool AddToClass(PyObject *pyclass, const char *label, PyCFunction cfunc, int flags=METH_VARARGS)
 
PyTypeObject VectorIter_Type
 
static PyObject * GetAttrDirect(PyObject *pyclass, PyObject *pyname)
 
bool Pythonize(PyObject *pyclass, const std::string &name)
 
bool CPPOverload_Check(T *object)
 
std::map< std::string, std::vector< PyObject * > > & pythonizations()
 
bool CPPScope_Check(T *object)
 
bool LowLevelView_Check(T *object)
 
bool CPPInstance_Check(T *object)
 
PyTypeObject IndexIter_Type
 
CPYCPPYY_EXTERN Converter * CreateConverter(const std::string &name, cdims_t=0)
 
std::set< std::string > gIteratorTypes
 
RPY_EXPORTED size_t SizeOf(TCppType_t klass)
 
RPY_EXPORTED bool IsDefaultConstructable(TCppType_t type)
 
RPY_EXPORTED bool IsEnum(const std::string &type_name)
 
RPY_EXPORTED std::vector< TCppIndex_t > GetMethodIndicesFromName(TCppScope_t scope, const std::string &name)
 
RPY_EXPORTED TCppIndex_t GetNumDatamembers(TCppScope_t scope, bool accept_namespace=false)
 
RPY_EXPORTED bool Compile(const std::string &code, bool silent=false)
 
RPY_EXPORTED std::string ResolveName(const std::string &cppitem_name)
 
RPY_EXPORTED bool IsAggregate(TCppType_t type)
 
RPY_EXPORTED std::string GetScopedFinalName(TCppType_t type)
 
RPY_EXPORTED bool IsPublicData(TCppScope_t scope, TCppIndex_t idata)
 
RPY_EXPORTED bool IsBuiltin(const std::string &type_name)
 
RPY_EXPORTED bool IsStaticData(TCppScope_t scope, TCppIndex_t idata)
 
RPY_EXPORTED std::string GetDatamemberType(TCppScope_t scope, TCppIndex_t idata)
 
RPY_EXPORTED TCppMethod_t GetMethod(TCppScope_t scope, TCppIndex_t imeth)
 
RPY_EXPORTED bool IsSmartPtr(TCppType_t type)
 
RPY_EXPORTED TCppScope_t GetScope(const std::string &scope_name)
 
RPY_EXPORTED std::string GetMethodResultType(TCppMethod_t)
 
RPY_EXPORTED std::string GetDatamemberName(TCppScope_t scope, TCppIndex_t idata)