76    typedef const void* DeclId_t;
 
   79    CallWrapper(
TFunction* 
f) : fDecl(
f->GetDeclId()), fName(
f->GetName()), fTF(
nullptr) {}
 
   80    CallWrapper(DeclId_t fid, 
const std::string& 
n) : fDecl(fid), fName(
n), fTF(
nullptr) {}
 
   82        if (fTF && fDecl == fTF->GetDeclId())
 
   98    CallWrapper* wrap = 
new CallWrapper(
f);
 
  105    CallWrapper* wrap = 
new CallWrapper(fid, 
n);
 
  122    {
"bool", 
"char", 
"signed char", 
"unsigned char", 
"wchar_t", 
"short", 
"unsigned short",
 
  123     "int", 
"unsigned int", 
"long", 
"unsigned long", 
"long long", 
"unsigned long long",
 
  124     "float", 
"double", 
"long double", 
"void",
 
  125     "allocator", 
"array", 
"basic_string", 
"complex", 
"initializer_list", 
"less", 
"list",
 
  126     "map", 
"pair", 
"set", 
"vector"};
 
  130    {
"auto_ptr", 
"std::auto_ptr", 
"shared_ptr", 
"std::shared_ptr",
 
  131     "unique_ptr", 
"std::unique_ptr", 
"weak_ptr", 
"std::weak_ptr"};
 
  148const int SIGPIPE  = 0;
 
  149const int SIGQUIT  = 0;
 
  150const int SIGWINCH = 0;
 
  151const int SIGALRM  = 0;
 
  152const int SIGCHLD  = 0;
 
  154const int SIGUSR1  = 0;
 
  155const int SIGUSR2  = 0;
 
  162   { SIGBUS,   
"bus error" }, 
 
  163   { SIGSEGV,  
"segmentation violation" },
 
  164   { SIGSYS,    
"bad argument to system call" },
 
  165   { SIGPIPE,   
"write on a pipe with no one to read it" },
 
  166   { SIGILL,    
"illegal instruction" },
 
  167   { SIGABRT,   
"abort" },
 
  169   { SIGINT,    
"interrupt" },
 
  170   { SIGWINCH,  
"window size change" },
 
  171   { SIGALRM,   
"alarm clock" },
 
  172   { SIGCHLD,   
"death of a child" },
 
  173   { SIGURG,    
"urgent data arrived on an I/O channel" },
 
  174   { SIGFPE,    
"floating point exception" },
 
  175   { SIGTERM,   
"termination signal" },
 
  176   { SIGUSR1,   
"user-defined signal 1" },
 
  177   { SIGUSR2,   
"user-defined signal 2" }
 
  180static void inline do_trace(
int sig) {
 
  194            if (!getenv(
"CPPYY_CRASH_QUIET"))
 
  206class ApplicationStarter {
 
  208    ApplicationStarter() {
 
  230        const char* stl_names[] = {
"allocator", 
"auto_ptr", 
"bad_alloc", 
"bad_cast",
 
  231            "bad_exception", 
"bad_typeid", 
"basic_filebuf", 
"basic_fstream", 
"basic_ifstream",
 
  232            "basic_ios", 
"basic_iostream", 
"basic_istream", 
"basic_istringstream",
 
  233            "basic_ofstream", 
"basic_ostream", 
"basic_ostringstream", 
"basic_streambuf",
 
  234            "basic_string", 
"basic_stringbuf", 
"basic_stringstream", 
"binary_function",
 
  235            "binary_negate", 
"bitset", 
"byte", 
"char_traits", 
"codecvt_byname", 
"codecvt", 
"collate",
 
  236            "collate_byname", 
"compare", 
"complex", 
"ctype_byname", 
"ctype", 
"default_delete",
 
  237            "deque", 
"divides", 
"domain_error", 
"equal_to", 
"exception", 
"forward_list", 
"fpos",
 
  238            "function", 
"greater_equal", 
"greater", 
"gslice_array", 
"gslice", 
"hash", 
"indirect_array",
 
  239            "integer_sequence", 
"invalid_argument", 
"ios_base", 
"istream_iterator", 
"istreambuf_iterator",
 
  240            "istrstream", 
"iterator_traits", 
"iterator", 
"length_error", 
"less_equal", 
"less",
 
  241            "list", 
"locale", 
"localedef utility", 
"locale utility", 
"logic_error", 
"logical_and",
 
  242            "logical_not", 
"logical_or", 
"map", 
"mask_array", 
"mem_fun", 
"mem_fun_ref", 
"messages",
 
  243            "messages_byname", 
"minus", 
"modulus", 
"money_get", 
"money_put", 
"moneypunct",
 
  244            "moneypunct_byname", 
"multimap", 
"multiplies", 
"multiset", 
"negate", 
"not_equal_to",
 
  245            "num_get", 
"num_put", 
"numeric_limits", 
"numpunct", 
"numpunct_byname",
 
  246            "ostream_iterator", 
"ostreambuf_iterator", 
"ostrstream", 
"out_of_range",
 
  247            "overflow_error", 
"pair", 
"plus", 
"pointer_to_binary_function",
 
  248            "pointer_to_unary_function", 
"priority_queue", 
"queue", 
"range_error",
 
  249            "raw_storage_iterator", 
"reverse_iterator", 
"runtime_error", 
"set", 
"shared_ptr",
 
  250            "slice_array", 
"slice", 
"stack", 
"string", 
"strstream", 
"strstreambuf",
 
  251            "time_get_byname", 
"time_get", 
"time_put_byname", 
"time_put", 
"unary_function",
 
  252            "unary_negate", 
"unique_ptr", 
"underflow_error", 
"unordered_map", 
"unordered_multimap",
 
  253            "unordered_multiset", 
"unordered_set", 
"valarray", 
"vector", 
"weak_ptr", 
"wstring"};
 
  254        for (
auto& 
name : stl_names)
 
  259        if (getenv(
"CPPYY_OPT_LEVEL")) optLevel = atoi(getenv(
"CPPYY_OPT_LEVEL"));
 
  261            std::ostringstream s;
 
  262            s << 
"#pragma cling optimize " << optLevel;
 
  268               "#include <iostream>\n" 
  269               "#include <string>\n" 
  270               "#include <DllImport.h>\n"      
  271               "#include <vector>\n" 
  272               "#include <utility>";
 
  277            "namespace __cppyy_internal { template<class C1, class C2>" 
  278            " bool is_equal(const C1& c1, const C2& c2) { return (bool)(c1 == c2); } }");
 
  280            "namespace __cppyy_internal { template<class C1, class C2>" 
  281            " bool is_not_equal(const C1& c1, const C2& c2) { return (bool)(c1 != c2); } }");
 
  284        if (!getenv(
"CPPYY_NO_ROOT_FILTER")) {
 
  285            gROOT->GetListOfGlobals(
true);             
 
  286            gROOT->GetListOfGlobalFunctions(
true);     
 
  287            std::set<std::string> initial;
 
  300            gRootSOs.insert(
"libMathCore.dll ");
 
  311    ~ApplicationStarter() {
 
  316} _applicationStarter;
 
  325    assert((ClassRefs_t::size_type)scope < 
g_classrefs.size());
 
  331    CallWrapper* wrap = ((CallWrapper*)method);
 
  332    if (!wrap->fTF || wrap->fTF->GetDeclId() != wrap->fDecl) {
 
  333        MethodInfo_t* mi = 
gInterpreter->MethodInfo_Factory(wrap->fDecl);
 
  342    char* cstr = (
char*)
malloc(cppstr.size()+1);
 
  343    memcpy(cstr, cppstr.c_str(), cppstr.size()+1);
 
  348bool match_name(
const std::string& tname, 
const std::string fname)
 
  351    if (fname.rfind(tname, 0) == 0) {
 
  352        if ((tname.size() == fname.size()) ||
 
  353              (tname.size() < fname.size() && fname[tname.size()] == 
'<'))
 
  362    std::string::size_type pos = 
name.find(
'<');
 
  363    if (pos != std::string::npos)
 
  382    TCppType_t klass = find_memoized(cppitem_name);
 
  386    std::string tclean = cppitem_name.compare(0, 2, 
"::") == 0 ?
 
  387        cppitem_name.substr(2, std::string::npos) : cppitem_name;
 
  391    if (tclean.empty() ) 
return cppitem_name;
 
  394    if (tclean[tclean.size()-1] == 
']')
 
  395        tclean = tclean.substr(0, tclean.rfind(
'[')) + 
"[]";
 
  397    if (tclean.rfind(
"byte", 0) == 0 || tclean.rfind(
"std::byte", 0) == 0)
 
  410    if (cppitem_name.rfind(
"__type_pack_element", 0) != std::string::npos) {
 
  414        const char* str = cppitem_name.c_str();
 
  415        char* endptr = 
nullptr;
 
  416        unsigned long index = strtoul(str+20, &endptr, 0);
 
  418        std::string tmplvars{endptr};
 
  419        auto start = tmplvars.find(
',') + 1;
 
  420        auto end = tmplvars.find(
',', start);
 
  423            end = tmplvars.find(
',', start);
 
  424            if (end == std::string::npos) end = tmplvars.rfind(
'>');
 
  428        std::string resolved = tmplvars.substr(start, end-start);
 
  429        auto cpd = tmplvars.rfind(
'>');
 
  430        if (cpd != std::string::npos && cpd+1 != tmplvars.size())
 
  431            return resolved + tmplvars.substr(cpd+1, std::string::npos);
 
  451    if (et_short.find(
"(unnamed") == std::string::npos) {
 
  452        std::ostringstream decl;
 
  454        for (
auto& itype : {
"unsigned int"}) {
 
  455            decl << 
"std::is_same<" 
  457                 << 
", std::underlying_type<" 
  459                 << 
">::type>::value;";
 
  463                std::string resugared;
 
  464                if (et_short.size() != enum_type.size()) {
 
  465                    auto pos = enum_type.find(et_short);
 
  466                    if (pos != std::string::npos) {
 
  467                        resugared = enum_type.substr(0, pos) + itype;
 
  468                        if (pos+et_short.size() < enum_type.size())
 
  469                            resugared += enum_type.substr(pos+et_short.size(), std::string::npos);
 
  472                if (resugared.empty()) resugared = itype;
 
  480    int ipos = (
int)enum_type.size()-1;
 
  481    for (; 0 <= ipos; --ipos) {
 
  482        char c = enum_type[ipos];
 
  483        if (isspace(
c)) 
continue;
 
  484        if (isalnum(
c) || 
c == 
'_' || 
c == 
'>' || 
c == 
')') 
break;
 
  486    bool isConst = enum_type.find(
"const ", 6) != std::string::npos;
 
  487    std::string restype = isConst ? 
"const " : 
"";
 
  488    restype += 
"internal_enum_type_t"+enum_type.substr((std::string::size_type)ipos+1, std::string::npos);
 
  507    bool bHasAlias = sname != scope_name;
 
  509        result = find_memoized(scope_name);
 
  515    if (b_scope_name_missclassified) {
 
  516        result = find_memoized(
"std::"+scope_name);
 
  520    if (b_sname_missclassified) {
 
  541    if (b_scope_name_missclassified)
 
  543    if (b_sname_missclassified)
 
  551    return (
bool)
gInterpreter->CheckClassTemplate(template_name.c_str());
 
  557        virtual ~AutoCastRTTI() {}
 
  564    if (!cr.
GetClass() || !obj) 
return klass;
 
  571    volatile const char* raw = 
nullptr;     
 
  574        AutoCastRTTI* pcst = (AutoCastRTTI*)obj;
 
  575        raw = 
typeid(*pcst).raw_name();
 
  578        void* vfptr = *(
void**)((intptr_t)obj);
 
  579        void* meta = (
void*)((intptr_t)*((
void**)((intptr_t)vfptr-
sizeof(
void*))));
 
  580        if (*(intptr_t*)meta == 2) {
 
  582            void* ptdescr = (
void*)((intptr_t)meta + 4*
sizeof(
unsigned long)+
sizeof(
void*));
 
  583            if (ptdescr && *(
void**)ptdescr) {
 
  584                auto rtti = *(std::type_info**)ptdescr;
 
  585                raw = rtti->raw_name();
 
  586                if (raw && raw[0] != 
'\0')    
 
  598    } 
catch (std::bad_typeid) {
 
  604    if (clActual && clActual != cr.
GetClass()) {
 
  625    if (dt) 
return dt->
Size();
 
  647        ClassInfo_t* ci = 
gInterpreter->ClassInfo_Factory(type_name.c_str());
 
  666    ::operator 
delete(instance);
 
  683        if (fdel) fdel((
void*)instance);
 
  690            ib->second ? cr->
Destructor((
void*)instance) : 
free((
void*)instance);
 
  700    CallWrapper* wrap = (CallWrapper*)method;
 
  703    MethodInfo_t* meth = 
gInterpreter->MethodInfo_Factory(wrap->fDecl);
 
  707    if (!(callf && 
gInterpreter->CallFunc_IsValid(callf))) {
 
  713        std::cerr << 
"TODO: report unresolved function error to Python\n";
 
  723    wrap->fFaceptr = 
gInterpreter->CallFunc_IFacePtr(callf);
 
  727    return wrap->fFaceptr;
 
  733    bool runRelease = 
false;
 
  734    for (
size_t i = 0; i < nargs; ++i) {
 
  735        switch (args[i].fTypeCode) {
 
  742            vargs[i] = args[i].
fRef;
 
  745            vargs[i] = (
void*)&args[i].fValue.fVoidp;
 
  754    for (
size_t i = 0; i < nargs; ++i) {
 
  755        if (args[i].fTypeCode == 
'X')
 
  756            free(args[i].fValue.fVoidp);
 
  764    CallWrapper* wrap = (CallWrapper*)method;
 
  770        bool runRelease = 
false;
 
  773            if (nargs) runRelease = 
copy_args(args, nargs, smallbuf);
 
  776            std::vector<void*> buf(nargs);
 
  777            runRelease = 
copy_args(args, nargs, buf.data());
 
  785        bool runRelease = 
false;
 
  788            if (nargs) runRelease = 
copy_args(args, nargs, (
void**)smallbuf);
 
  789            faceptr.
fCtor((
void**)smallbuf, 
result, (
unsigned long)nargs);
 
  791            std::vector<void*> buf(nargs);
 
  792            runRelease = 
copy_args(args, nargs, buf.data());
 
  793            faceptr.
fCtor(buf.data(), 
result, (
unsigned long)nargs);
 
  800        std::cerr << 
" DESTRUCTOR NOT IMPLEMENTED YET! " << std::endl;
 
  812    if (
WrapperCall(method, nargs, args, (
void*)self, &t))
 
  817#define CPPYY_IMP_CALL(typecode, rtype)                                      \ 
  818rtype Cppyy::Call##typecode(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args)\ 
  820    return CallT<rtype>(method, self, nargs, args);                          \ 
  825    if (!
WrapperCall(method, nargs, args, (
void*)self, 
nullptr))
 
  850    char* cstr = 
nullptr;
 
  852    std::string* cppresult = (std::string*)
malloc(
sizeof(std::string));
 
  853    if (
WrapperCall(method, nargs, args, self, (
void*)cppresult)) {
 
  855        *
length = cppresult->size();
 
  856        cppresult->std::string::~basic_string();
 
  859    free((
void*)cppresult);
 
  867    if (
WrapperCall(method, nargs, args, 
nullptr, &obj))
 
  885    ::operator 
delete(obj);
 
  942    if (type_name.empty()) 
return false;
 
  944    if (tn_short.empty()) 
return false;
 
  945    return gInterpreter->ClassInfo_IsEnum(tn_short.c_str());
 
  954    for (std::string::size_type pos = 0; pos < 
name.size(); ++pos) {
 
  955        std::string::value_type 
c = 
name[pos];
 
  964        else if (tpl_open == 0 && \
 
  965                 c == 
':' && pos+1 < 
name.size() && 
name[pos+1] == 
':') {
 
  967            return name.substr(0, pos-1);
 
  979    std::string::size_type first_scope = 
name.find(
':');
 
  980    if (first_scope == std::string::npos)
 
  981        return name.substr(0, 
name.find(
'<'));
 
  982    std::string::size_type first_templ = 
name.find(
'<');
 
  983    if (first_templ == std::string::npos)
 
  984        return name.substr(0, first_scope);
 
  985    return name.substr(0, std::min(first_templ, first_scope));
 
  988#define FILL_COLL(type, filter) {                                             \ 
  990    type* obj = nullptr;                                                      \ 
  991    while ((obj = (type*)itr.Next())) {                                       \ 
  992        const char* nm = obj->GetName();                                      \ 
  993        if (nm && nm[0] != '_' && !(obj->Property() & (filter))) {            \ 
  994            if (gInitialNames.find(nm) == gInitialNames.end())                \ 
  995                cppnames.insert(nm);                                          \ 
 1000    std::set<std::string>& cppnames, 
const char* 
name, 
bool nofilter = 
false)
 
 1002    if (!
name || 
name[0] == 
'_' || strstr(
name, 
".h") != 0 || strncmp(
name, 
"operator", 8) == 0)
 
 1010        if (strncmp(
name, 
"std::", 5) == 0) {
 
 1013            if (strncmp(
name, 
"__1::", 5) == 0) 
name += 5;
 
 1019        if (strncmp(
name, ns_scope.c_str(), ns_scope.size()) == 0)
 
 1041        while ((ev = (
TEnvRec*)itr.Next())) {
 
 1058    coll = 
gROOT->GetListOfTypes();
 
 1075        while ((obj = (
TFunction*)itr.Next())) {
 
 1076            const char* nm = obj->
GetName();
 
 1078            if (nm && nm[0] != 
'_' && strstr(nm, 
"<") == 0 && strncmp(nm, 
"operator", 8) != 0) {
 
 1080                    cppnames.insert(nm);
 
 1092        coll = 
gROOT->GetListOfGlobals();
 
 1118    std::vector<Cppyy::TCppScope_t> res;
 
 1134    res.reserve(
v.size());
 
 1135    for (
const auto& uid : 
v) {
 
 1137        if (uscope) res.push_back(uscope);
 
 1150    std::string clName = cr->
GetName();
 
 1152    std::string::size_type pos = clName.substr(0, clName.find(
'<')).rfind(
"::");
 
 1153    if (pos != std::string::npos)
 
 1154        return clName.substr(pos+2, std::string::npos);
 
 1166            return std::string(
"std::")+cr->
GetName();
 
 1196    else if (nbases == 0)
 
 1247   auto ndirectbases = directbases->
GetSize();
 
 1248   if (ndirectbases == 0) {
 
 1253      std::vector<Cppyy::TCppIndex_t> nbases_branches;
 
 1254      nbases_branches.reserve(ndirectbases);
 
 1261         if (
auto baseclass_tclass = baseclass->GetClassPointer()) {
 
 1267      auto longestbranch = std::max_element(std::begin(nbases_branches), std::end(nbases_branches));
 
 1270      return 1 + *longestbranch;
 
 1287   if (
auto klass_tclass = cr.GetClass()) {
 
 1303    if (derived == base)
 
 1313    const std::string& tn = cr->
GetName();
 
 1324        if (!raw && !deref) 
return true;
 
 1337               return (!deref || *deref) && (!raw || *raw);
 
 1356    if (derived == base || !(base && derived))
 
 1357        return (ptrdiff_t)0;
 
 1363        return (ptrdiff_t)0;
 
 1372            std::ostringstream msg;
 
 1373            msg << 
"failed offset calculation between " << cb->
GetName() << 
" and " << cd->
GetName();
 
 1376            std::cerr << 
"Warning: " << msg.str() << 
'\n';
 
 1380        return rerror ? (ptrdiff_t)
offset : 0;
 
 1386        return rerror ? (ptrdiff_t)
offset : 0;
 
 1403            if (clName.find(
'<') != std::string::npos) {
 
 1406                if (clName.find(
"std::", 0, 5) == std::string::npos && \
 
 1409                    clName = 
"std::" + clName;
 
 1411                std::ostringstream stmt;
 
 1412                stmt << 
"template class " << clName << 
";";
 
 1428    std::vector<TCppIndex_t> indices;
 
 1476        const std::string& 
name = ((CallWrapper*)method)->fName;
 
 1478        if (
name.compare(0, 8, 
"operator") != 0)
 
 1480            return name.substr(0, 
name.find(
'<'));
 
 1489        std::string 
name = ((CallWrapper*)method)->fName;
 
 1508            return "constructor";
 
 1509        std::string restype = 
f->GetReturnTypeName();
 
 1513        if (restype.find(
"int8_t") != std::string::npos)
 
 1515        restype = 
f->GetReturnTypeNormalizedName();
 
 1516        if (restype == 
"(lambda)") {
 
 1517            std::ostringstream s;
 
 1519            s << 
"__cling_internal::FT<decltype(" 
 1522                if (i != 0) s << 
", ";
 
 1588        std::ostringstream sig;
 
 1590        int nArgs = 
f->GetNargs();
 
 1591        if (maxargs != (
TCppIndex_t)-1) nArgs = std::min(nArgs, (
int)maxargs);
 
 1592        for (
int iarg = 0; iarg < nArgs; ++iarg) {
 
 1595            if (show_formalargs) {
 
 1596                const char* argname = arg->
GetName();
 
 1597                if (argname && argname[0] != 
'\0') sig << 
" " << argname;
 
 1599                if (defvalue && defvalue[0] != 
'\0') sig << 
" = " << defvalue;
 
 1601            if (iarg != nArgs-1) sig << (show_formalargs ? 
", " : 
",");
 
 1614        std::ostringstream sig;
 
 1615        sig << 
f->GetReturnTypeName() << 
" " 
 1616            << scName << 
"::" << 
f->GetName();
 
 1652        return ((
THashList*)
gROOT->GetListOfFunctionTemplates())->At((
int)imeth)->GetName();
 
 1660    assert(!
"should not be called unless GetNumTemplatedMethods() succeeded");
 
 1681        return (
bool)
gROOT->GetFunctionTemplate(
name.c_str());
 
 1697        if (
f && strstr(
f->GetName(), 
"<")) 
return true;
 
 1702    if (((CallWrapper*)idx)->fName.find(
'<') != std::string::npos) 
return true;
 
 1723    TFunction* func = 
nullptr; ClassInfo_t* cl = 
nullptr;
 
 1725        func = 
gROOT->GetGlobalFunctionWithPrototype(
name.c_str(), 
proto.c_str());
 
 1771    if (
name.back() == 
'>') {
 
 1772        auto pos = 
name.find(
'<');
 
 1773        if (pos != std::string::npos) {
 
 1778                if (
name.size() < alt.size() && alt.find(
'<') == pos) {
 
 1779                    const std::string& partial = 
name.substr(pos, 
name.size()-1-pos);
 
 1780                    if (strncmp(partial.c_str(), alt.substr(pos, alt.size()-1-pos).c_str(), partial.size()) == 0)
 
 1792std::string 
type_remap(
const std::string& n1, 
const std::string& n2)
 
 1799        if (n2 == 
"std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >")
 
 1801        return "std::string";               
 
 1802    } 
else if (n1 == 
"float")
 
 1808    TCppType_t scope, 
const std::string& lc, 
const std::string& rc, 
const std::string& opname)
 
 1814    const std::string& lcname = 
type_remap(lcname1, rcname);
 
 1816    std::string 
proto = lcname + 
"&" + (rc.empty() ? rc : (
", " + rcname + 
"&"));
 
 1820        proto = lcname + (rc.empty() ? rc : (
", " + rcname));
 
 1821        func = 
gROOT->GetGlobalFunctionWithPrototype(opname.c_str(), 
proto.c_str());
 
 1828            proto = lcname + (rc.empty() ? rc : (
", " + rcname));
 
 1909    if ((
int)idata < numDMs)
 
 1933            fullType.append(
"*");
 
 1935            std::ostringstream s;
 
 1936            s << 
'[' << gbl->
GetMaxIndex(0) << 
']' << std::ends;
 
 1937            fullType.append(s.str());
 
 1949        std::string fullType = 
m->GetFullTypeName();
 
 1950        if (fullType != 
m->GetTrueTypeName()) {
 
 1951            const std::string& trueName = 
m->GetTrueTypeName();
 
 1952            if (fullType.find(
"::") == std::string::npos && trueName.find(
"::") != std::string::npos)
 
 1953                fullType = trueName;
 
 1956        if ((
int)
m->GetArrayDim() > 1 || (!
m->IsBasic() && 
m->IsaPointer()))
 
 1957            fullType.append(
"*");
 
 1958        else if ((
int)
m->GetArrayDim() == 1) {
 
 1959            std::ostringstream s;
 
 1960            s << 
'[' << 
m->GetMaxIndex(0) << 
']' << std::ends;
 
 1961            fullType.append(s.str());
 
 1975            intptr_t addr = (intptr_t)
gInterpreter->ProcessLine((std::string(
"&")+gbl->
GetName()+
";").c_str());
 
 1990            if (strchr(cr->
GetName(), 
'<'))
 
 1992            if ((intptr_t)
m->GetOffsetCint() == (intptr_t)-1)
 
 1995        return (intptr_t)
m->GetOffsetCint();    
 
 1999    return (intptr_t)-1;
 
 2012                DataMemberInfo_t* t = 
gInterpreter->DataMemberInfo_Factory(did, 
nullptr);
 
 2023            std::ostringstream s;
 
 2024            s << 
"auto __cppyy_internal_wrap_" << 
name << 
" = " 
 2025                 "new __cling_internal::FT<decltype(" << 
name << 
")>::F" 
 2026                 "{" << 
name << 
"};";
 
 2029                (
"__cppyy_internal_wrap_"+
name).c_str());
 
 2030            if (wrap && wrap->GetAddress()) gb = wrap;
 
 2123        std::string ti = 
m->GetTypeName();
 
 2126        if (ti.rfind(
"(unnamed)") != std::string::npos)
 
 2131        if (ti.rfind(cr->
GetName(), 0) != std::string::npos) {
 
 2132            std::string::size_type s = strlen(cr->
GetName())+2;
 
 2133            if (s < ti.size()) {
 
 2154        return m->GetMaxIndex(dimension);
 
 2186     return (
long long)ecst->
GetValue();
 
 2248#define CPPYY_HANDLE_EXCEPTION                                               \ 
 2249    catch (std::exception& e) {                                              \ 
 2250        cppyy_exctype_t* etype = (cppyy_exctype_t*)((Parameter*)args+nargs); \ 
 2251        *etype = (cppyy_exctype_t)2;                                         \ 
 2252        *((char**)(etype+1)) = cppstring_to_cstring(e.what());               \ 
 2255        cppyy_exctype_t* etype = (cppyy_exctype_t*)((Parameter*)args+nargs); \ 
 2256        *etype = (cppyy_exctype_t)1;                                         \ 
 2257        *((char**)(etype+1)) =                                               \ 
 2258            cppstring_to_cstring("unhandled, unknown C++ exception");        \
 
 2269        return (
unsigned char)
Cppyy::CallB(method, (
void*)self, nargs, args);
 
 2271    return (
unsigned char)-1;
 
 2276        return (
char)
Cppyy::CallC(method, (
void*)self, nargs, args);
 
 2283        return (
short)
Cppyy::CallH(method, (
void*)self, nargs, args);
 
 2290        return (
int)
Cppyy::CallI(method, (
void*)self, nargs, args);
 
 2297        return (
long)
Cppyy::CallL(method, (
void*)self, nargs, args);
 
 2304        return (
long long)
Cppyy::CallLL(method, (
void*)self, nargs, args);
 
 2306    return (
long long)-1;
 
 2311        return (
float)
Cppyy::CallF(method, (
void*)self, nargs, args);
 
 2318        return (
double)
Cppyy::CallD(method, (
void*)self, nargs, args);
 
 2325        return (
long double)
Cppyy::CallLD(method, (
void*)self, nargs, args);
 
 2327    return (
long double)-1;
 
 2336        return (
void*)
Cppyy::CallR(method, (
void*)self, nargs, args);
 
 2338    return (
void*)
nullptr;
 
 2344        return Cppyy::CallS(method, (
void*)self, nargs, args, lsz);
 
 2346    return (
char*)
nullptr;
 
 2411    std::set<std::string> cppnames;
 
 2413    const char** c_cppnames = (
const char**)
malloc(cppnames.size()*
sizeof(
const char*));
 
 2415    for (
const auto& 
name : cppnames) {
 
 2419    *count = cppnames.size();
 
 2432    for (
int i = 0; i < (
int)uv.size(); ++i) llresult[i] = uv[i];
 
 2504    llresult[
result.size()] = -1;
 
 2672#if defined(_MSC_VER) 
 2674    return _strtoi64(str, NULL, 0);
 
 2679    return _strtoui64(str, NULL, 0);
 
 2684    return strtoll(str, NULL, 0);
 
 2689    return strtoull(str, NULL, 0);
 
 2703    *lsz = ((std::string*)ptr)->size();
 
 2704    return ((std::string*)ptr)->
data();
 
 2712    return (
double)*(
long double*)
p;
 
 2716    *(
long double*)
p = 
d;
 
 2720    return (
int)(*(std::vector<bool>*)ptr)[idx];
 
 2724    (*(std::vector<bool>*)ptr)[idx] = (
bool)
value;
 
R__EXTERN TExceptionHandler * gExceptionHandler
 
R__EXTERN ExceptionContext_t * gException
 
R__EXTERN void Throw(int code)
If an exception context has been set (using the TRY and RETRY macros) jump back to where it was set.
 
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 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 offset
 
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 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 length
 
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 funcs
 
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 Atom_t Time_t type
 
R__EXTERN TSystem * gSystem
 
static struct Signalmap_t gSignalMap[kMAXSIGNALS]
 
cppyy_scope_t cppyy_type_t
 
unsigned long cppyy_exctype_t
 
Each class (see TClass) has a linked list of its base class(es).
 
Long_t Property() const override
Get property description word. For meaning of bits see EProperty.
 
TClassRef is used to implement a permanent reference to a TClass object.
 
TClass * GetClass() const
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
TList * GetListOfUsingDataMembers(Bool_t load=kTRUE)
Return list containing the TDataMembers of using declarations of a class.
 
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.
 
TMethod * GetMethod(const char *method, const char *params, Bool_t objectIsConst=kFALSE)
Find the best method (if there is one) matching the parameters.
 
TMethod * GetMethodWithPrototype(const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Find the method with a given prototype.
 
const TList * GetListOfAllPublicMethods(Bool_t load=kTRUE)
Returns a list of all public methods of this class and its base classes.
 
void Destructor(void *obj, Bool_t dtorOnly=kFALSE)
Explicitly call destructor for object.
 
TList * GetListOfFunctionTemplates(Bool_t load=kTRUE)
Return TListOfFunctionTemplates for a class.
 
TList * GetListOfEnums(Bool_t load=kTRUE)
Return a list containing the TEnums of a class.
 
TList * GetListOfMethods(Bool_t load=kTRUE)
Return list containing the TMethods of a class.
 
TClass * GetBaseClass(const char *classname)
Return pointer to the base class "classname".
 
TList * GetListOfDataMembers(Bool_t load=kTRUE)
Return list containing the TDataMembers of a class.
 
TList * GetListOfBases()
Return list containing the TBaseClass(es) of a class.
 
Bool_t IsLoaded() const
Return true if the shared library of this class is currently in the a process's memory.
 
ClassInfo_t * GetClassInfo() const
 
Long_t ClassProperty() const
Return the C++ property of this class, eg.
 
Long_t Property() const override
Returns the properties of the TClass as a bit field stored as a Long_t value.
 
ROOT::DelFunc_t GetDelete() const
Return the wrapper around delete ThiObject.
 
TClass * GetActualClass(const void *object) const
Return a pointer to the real class of the object.
 
TFunctionTemplate * GetFunctionTemplate(const char *name)
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
 
Collection abstract base class.
 
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
 
All ROOT classes may have RTTI (run time type identification) support added.
 
Basic data type descriptor (datatype information is obtained from CINT).
 
const char * GetFullTypeName() const
Get full type description of typedef, e,g.: "class TDirectory*".
 
Long_t Property() const override
Get property description word. For meaning of bits see EProperty.
 
Int_t Size() const
Get size of basic typedef'ed type.
 
The TEnumConstant class implements the constants of the enum type.
 
Long64_t GetValue() const
 
The TEnum class implements the enum type.
 
const TEnumConstant * GetConstant(const char *name) const
 
const char * GetValue() const
 
const char * GetName() const override
Returns name of object.
 
virtual void HandleException(int sig)=0
 
Dictionary for function template This class describes one single function template.
 
Global functions class (global functions are obtained from CINT).
 
virtual const char * GetMangledName() const
Returns the mangled name as defined by CINT, or 0 in case of error.
 
Long_t Property() const override
Get property description word. For meaning of bits see EProperty.
 
Int_t GetNargs() const
Number of function arguments.
 
Long_t ExtraProperty() const
Get property description word. For meaning of bits see EProperty.
 
std::string GetReturnTypeNormalizedName() const
Get the normalized name of the return type.
 
Global variables class (global variables are obtained from CINT).
 
virtual Int_t GetArrayDim() const
Return number of array dimensions.
 
virtual Int_t GetMaxIndex(Int_t dim) const
Return maximum index for array dimension "dim".
 
Long_t Property() const override
Get property description word. For meaning of bits see EProperty.
 
virtual void * GetAddress() const
Return address of global.
 
virtual const char * GetFullTypeName() const
Get full type description of global variable, e,g.: "class TDirectory*".
 
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
 
A collection of TDataMember objects designed for fast access given a DeclId_t and for keep track of T...
 
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
 
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
 
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
 
Each ROOT method (see TMethod) has a linked list of its arguments.
 
const char * GetFullTypeName() const
Get full type description of method argument, e.g.: "class TDirectory*".
 
const char * GetDefault() const
Get default value of method argument.
 
std::string GetTypeNormalizedName() const
Get the normalized name of the return type.
 
const char * GetName() const override
Returns name of object.
 
virtual const char * GetName() const
Returns name of object.
 
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
 
static Bool_t Initialized()
Return kTRUE if the TROOT object has been initialized.
 
virtual Int_t IndexOf(const TObject *obj) const
Return index of object in collection.
 
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
 
virtual void Exit(int code, Bool_t mode=kTRUE)
Exit the application.
 
virtual void StackTrace()
Print a stack trace.
 
char * cppyy_method_mangled_name(cppyy_method_t method)
 
int cppyy_is_staticdata(cppyy_type_t type, cppyy_index_t datamember_index)
 
int cppyy_vectorbool_getitem(cppyy_object_t ptr, int idx)
 
int cppyy_has_virtual_destructor(cppyy_type_t type)
 
int cppyy_is_publicmethod(cppyy_method_t method)
 
void * cppyy_call_r(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
cppyy_object_t cppyy_constructor(cppyy_method_t method, cppyy_type_t klass, int nargs, void *args)
 
void * cppyy_load_dictionary(const char *lib_name)
 
static void cond_add(Cppyy::TCppScope_t scope, const std::string &ns_scope, std::set< std::string > &cppnames, const char *name, bool nofilter=false)
 
size_t cppyy_function_arg_typeoffset()
 
int cppyy_exists_method_template(cppyy_scope_t scope, const char *name)
 
int cppyy_get_num_templated_methods(cppyy_scope_t scope)
 
char * cppyy_call_s(cppyy_method_t method, cppyy_object_t self, int nargs, void *args, size_t *lsz)
 
char * cppyy_resolve_enum(const char *enum_type)
 
cppyy_object_t cppyy_charp2stdstring(const char *str, size_t sz)
 
static Name2ClassRefIndex_t g_name2classrefidx
 
int cppyy_is_constructor(cppyy_method_t method)
 
int cppyy_is_enum_data(cppyy_scope_t scope, cppyy_index_t idata)
 
#define FILL_COLL(type, filter)
 
char * cppyy_scoped_final_name(cppyy_type_t type)
 
int cppyy_num_bases(cppyy_type_t type)
 
static std::string outer_with_template(const std::string &name)
 
cppyy_method_t cppyy_get_method_template(cppyy_scope_t scope, const char *name, const char *proto)
 
static std::string outer_no_template(const std::string &name)
 
int cppyy_is_smartptr(cppyy_type_t type)
 
static std::string type_remap(const std::string &n1, const std::string &n2)
 
static std::map< Cppyy::TCppType_t, bool > sHasOperatorDelete
 
long long cppyy_strtoll(const char *str)
 
static std::set< std::string > gRootSOs
 
int cppyy_is_subtype(cppyy_type_t derived, cppyy_type_t base)
 
static TClassRef & type_from_handle(Cppyy::TCppScope_t scope)
 
double cppyy_call_nld(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
void cppyy_free(void *ptr)
 
int cppyy_smartptr_info(const char *name, cppyy_type_t *raw, cppyy_method_t *deref)
 
unsigned long long cppyy_strtoull(const char *str)
 
char * cppyy_method_arg_type(cppyy_method_t method, int arg_index)
 
cppyy_object_t cppyy_stdstring2stdstring(cppyy_object_t ptr)
 
char * cppyy_base_name(cppyy_type_t type, int base_index)
 
cppyy_scope_t * cppyy_get_using_namespaces(cppyy_scope_t scope)
 
static bool copy_args(Parameter *args, size_t nargs, void **vargs)
 
int cppyy_num_bases_longest_branch(cppyy_type_t type)
 
static TInterpreter::CallFuncIFacePtr_t GetCallFunc(Cppyy::TCppMethod_t method)
 
int cppyy_is_publicdata(cppyy_type_t type, cppyy_index_t datamember_index)
 
CPyCppyy::Parameter Parameter
 
intptr_t cppyy_datamember_offset(cppyy_scope_t scope, int datamember_index)
 
char * cppyy_datamember_type(cppyy_scope_t scope, int datamember_index)
 
static bool is_missclassified_stl(const std::string &name)
 
std::map< std::string, ClassRefs_t::size_type > Name2ClassRefIndex_t
 
void cppyy_destructor(cppyy_type_t klass, cppyy_object_t self)
 
static const ClassRefs_t::size_type STD_HANDLE
 
char cppyy_call_c(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
ptrdiff_t cppyy_base_offset(cppyy_type_t derived, cppyy_type_t base, cppyy_object_t address, int direction)
 
long double cppyy_call_ld(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
int cppyy_is_const_data(cppyy_scope_t scope, cppyy_index_t idata)
 
const char ** cppyy_get_all_cpp_names(cppyy_scope_t scope, size_t *count)
 
void cppyy_call_v(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
static std::set< std::string > gSmartPtrTypes
 
double cppyy_longdouble2double(void *p)
 
int cppyy_method_req_args(cppyy_method_t method)
 
int cppyy_is_staticmethod(cppyy_method_t method)
 
static GlobalVars_t g_globalvars
 
cppyy_index_t * cppyy_method_indices_from_name(cppyy_scope_t scope, const char *name)
 
static char * cppstring_to_cstring(const std::string &cppstr)
 
char * cppyy_method_signature(cppyy_method_t method, int show_formalargs)
 
int cppyy_is_abstract(cppyy_type_t type)
 
static void release_args(Parameter *args, size_t nargs)
 
int cppyy_call_i(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
static std::set< std::string > g_builtins
 
unsigned char cppyy_call_b(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
int cppyy_is_template(const char *template_name)
 
char * cppyy_method_result_type(cppyy_method_t method)
 
cppyy_type_t cppyy_actual_class(cppyy_type_t klass, cppyy_object_t obj)
 
int cppyy_is_templated_constructor(cppyy_scope_t scope, cppyy_index_t imeth)
 
char * cppyy_method_name(cppyy_method_t method)
 
int cppyy_is_protectedmethod(cppyy_method_t method)
 
char * cppyy_final_name(cppyy_type_t type)
 
char * cppyy_get_templated_method_name(cppyy_scope_t scope, cppyy_index_t imeth)
 
char * cppyy_method_full_name(cppyy_method_t method)
 
long cppyy_call_l(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
void cppyy_double2longdouble(double d, void *p)
 
void cppyy_deallocate_function_args(void *args)
 
int cppyy_method_is_template(cppyy_scope_t scope, cppyy_index_t idx)
 
static std::vector< CallWrapper * > gWrapperHolder
 
static bool gEnableFastPath
 
void cppyy_destruct(cppyy_type_t type, cppyy_object_t self)
 
int cppyy_is_enum(const char *type_name)
 
size_t cppyy_size_of_type(const char *type_name)
 
int cppyy_is_destructor(cppyy_method_t method)
 
cppyy_object_t cppyy_allocate(cppyy_type_t type)
 
char * cppyy_datamember_name(cppyy_scope_t scope, int datamember_index)
 
cppyy_object_t cppyy_construct(cppyy_type_t type)
 
static ClassRefs_t g_classrefs(1)
 
static bool WrapperCall(Cppyy::TCppMethod_t method, size_t nargs, void *args_, void *self, void *result)
 
static std::map< std::string, std::string > resolved_enum_types
 
int cppyy_is_namespace(cppyy_scope_t scope)
 
cppyy_object_t cppyy_call_o(cppyy_method_t method, cppyy_object_t self, int nargs, void *args, cppyy_type_t result_type)
 
long long cppyy_call_ll(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
cppyy_scope_t cppyy_get_scope(const char *scope_name)
 
void cppyy_vectorbool_setitem(cppyy_object_t ptr, int idx, int value)
 
static CallWrapper * new_CallWrapper(TFunction *f)
 
void cppyy_add_smartptr_type(const char *type_name)
 
void * cppyy_allocate_function_args(int nargs)
 
float cppyy_call_f(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
short cppyy_call_h(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
int cppyy_is_protecteddata(cppyy_type_t type, cppyy_index_t datamember_index)
 
static std::set< std::string > gSTLNames
 
static const ClassRefs_t::size_type GLOBAL_HANDLE
 
int cppyy_get_dimension_size(cppyy_scope_t scope, cppyy_index_t idata, int dimension)
 
char * cppyy_method_signature_max(cppyy_method_t method, int show_formalargs, int maxargs)
 
double cppyy_call_d(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
int cppyy_num_methods(cppyy_scope_t scope)
 
char * cppyy_method_prototype(cppyy_scope_t scope, cppyy_method_t method, int show_formalargs)
 
std::vector< TGlobal * > GlobalVars_t
 
char * cppyy_resolve_name(const char *cppitem_name)
 
cppyy_method_t cppyy_get_method(cppyy_scope_t scope, cppyy_index_t idx)
 
std::vector< TClassRef > ClassRefs_t
 
size_t cppyy_function_arg_sizeof()
 
int cppyy_is_const_method(cppyy_method_t method)
 
static std::map< TDictionary::DeclId_t, CallWrapper * > gMethodTemplates
 
int cppyy_num_datamembers(cppyy_scope_t scope)
 
#define CPPYY_HANDLE_EXCEPTION
 
size_t cppyy_size_of_klass(cppyy_type_t klass)
 
static bool match_name(const std::string &tname, const std::string fname)
 
int cppyy_datamember_index(cppyy_scope_t scope, const char *name)
 
cppyy_index_t cppyy_get_global_operator(cppyy_scope_t scope, cppyy_scope_t lc, cppyy_scope_t rc, const char *op)
 
static TFunction * m2f(Cppyy::TCppMethod_t method)
 
void cppyy_deallocate(cppyy_type_t type, cppyy_object_t self)
 
const char * cppyy_stdstring2charp(cppyy_object_t ptr, size_t *lsz)
 
int cppyy_compile(const char *code)
 
static TDataMember * GetDataMemberByIndex(TClassRef cr, int idata)
 
#define CPPYY_IMP_CALL(typecode, rtype)
 
int cppyy_method_num_args(cppyy_method_t method)
 
static std::set< std::string > gInitialNames
 
char * cppyy_method_arg_default(cppyy_method_t method, int arg_index)
 
static T CallT(Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, size_t nargs, void *args)
 
cppyy_funcaddr_t cppyy_function_address(cppyy_method_t method)
 
int cppyy_has_complex_hierarchy(cppyy_type_t type)
 
Cppyy::TCppIndex_t GetLongestInheritancePath(TClass *klass)
Retrieve number of base classes in the longest branch of the inheritance tree of the input class.
 
char * cppyy_method_arg_name(cppyy_method_t method, int arg_index)
 
RPY_EXPORTED TCppIndex_t GetNumMethods(TCppScope_t scope)
 
RPY_EXPORTED std::string GetMethodMangledName(TCppMethod_t)
 
RPY_EXPORTED TCppObject_t CallO(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args, TCppType_t result_type)
 
RPY_EXPORTED int CallI(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED ptrdiff_t GetBaseOffset(TCppType_t derived, TCppType_t base, TCppObject_t address, int direction, bool rerror=false)
 
RPY_EXPORTED void DeallocateFunctionArgs(void *args)
 
RPY_EXPORTED bool IsEnumData(TCppScope_t scope, TCppIndex_t idata)
 
RPY_EXPORTED unsigned char CallB(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED bool IsAbstract(TCppType_t type)
 
RPY_EXPORTED size_t SizeOf(TCppType_t klass)
 
RPY_EXPORTED TCppObject_t CallConstructor(TCppMethod_t method, TCppType_t type, size_t nargs, void *args)
 
RPY_EXPORTED void * AllocateFunctionArgs(size_t nargs)
 
RPY_EXPORTED bool IsTemplate(const std::string &template_name)
 
RPY_EXPORTED TCppIndex_t GetMethodReqArgs(TCppMethod_t)
 
RPY_EXPORTED bool IsEnum(const std::string &type_name)
 
RPY_EXPORTED TCppObject_t Construct(TCppType_t type)
 
RPY_EXPORTED std::vector< TCppIndex_t > GetMethodIndicesFromName(TCppScope_t scope, const std::string &name)
 
RPY_EXPORTED bool ExistsMethodTemplate(TCppScope_t scope, const std::string &name)
 
RPY_EXPORTED std::string GetMethodName(TCppMethod_t)
 
RPY_EXPORTED bool IsConstData(TCppScope_t scope, TCppIndex_t idata)
 
RPY_EXPORTED void AddSmartPtrType(const std::string &)
 
RPY_EXPORTED void CallDestructor(TCppType_t type, TCppObject_t self)
 
RPY_EXPORTED TCppScope_t gGlobalScope
 
RPY_EXPORTED bool IsProtectedData(TCppScope_t scope, TCppIndex_t idata)
 
RPY_EXPORTED std::string GetMethodSignature(TCppMethod_t, bool show_formalargs, TCppIndex_t maxargs=(TCppIndex_t) -1)
 
RPY_EXPORTED int GetDimensionSize(TCppScope_t scope, TCppIndex_t idata, int dimension)
 
RPY_EXPORTED bool IsSubtype(TCppType_t derived, TCppType_t base)
 
RPY_EXPORTED TCppMethod_t GetMethodTemplate(TCppScope_t scope, const std::string &name, const std::string &proto)
 
RPY_EXPORTED bool IsConstructor(TCppMethod_t method)
 
RPY_EXPORTED bool GetSmartPtrInfo(const std::string &, TCppType_t *raw, TCppMethod_t *deref)
 
RPY_EXPORTED char CallC(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED std::string GetMethodArgName(TCppMethod_t, TCppIndex_t iarg)
 
RPY_EXPORTED double CallD(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED size_t GetFunctionArgTypeoffset()
 
RPY_EXPORTED TCppObject_t Allocate(TCppType_t type)
 
RPY_EXPORTED void Destruct(TCppType_t type, TCppObject_t instance)
 
RPY_EXPORTED std::string ResolveName(const std::string &cppitem_name)
 
RPY_EXPORTED std::string ResolveEnum(const std::string &enum_type)
 
RPY_EXPORTED long long GetEnumDataValue(TCppEnum_t, TCppIndex_t idata)
 
RPY_EXPORTED TCppIndex_t GetMethodNumArgs(TCppMethod_t)
 
RPY_EXPORTED TCppType_t GetActualClass(TCppType_t klass, TCppObject_t obj)
 
RPY_EXPORTED std::string GetBaseName(TCppType_t type, TCppIndex_t ibase)
 
RPY_EXPORTED bool IsNamespace(TCppScope_t scope)
 
RPY_EXPORTED float CallF(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED std::string GetScopedFinalName(TCppType_t type)
 
RPY_EXPORTED void Deallocate(TCppType_t type, TCppObject_t instance)
 
RPY_EXPORTED bool IsPublicData(TCppScope_t scope, TCppIndex_t idata)
 
RPY_EXPORTED std::string GetMethodArgType(TCppMethod_t, TCppIndex_t iarg)
 
RPY_EXPORTED long CallL(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED void * CallR(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED std::string GetEnumDataName(TCppEnum_t, TCppIndex_t idata)
 
RPY_EXPORTED void GetAllCppNames(TCppScope_t scope, std::set< std::string > &cppnames)
 
RPY_EXPORTED bool IsComplete(const std::string &type_name)
 
RPY_EXPORTED bool IsBuiltin(const std::string &type_name)
 
RPY_EXPORTED bool IsStaticMethod(TCppMethod_t method)
 
RPY_EXPORTED TCppIndex_t GetDatamemberIndex(TCppScope_t scope, const std::string &name)
 
RPY_EXPORTED void CallV(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
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 IsDestructor(TCppMethod_t method)
 
RPY_EXPORTED bool IsSmartPtr(TCppType_t type)
 
RPY_EXPORTED LongDouble_t CallLD(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED std::string GetTemplatedMethodName(TCppScope_t scope, TCppIndex_t imeth)
 
RPY_EXPORTED size_t GetFunctionArgSizeof()
 
RPY_EXPORTED TCppScope_t GetScope(const std::string &scope_name)
 
RPY_EXPORTED bool HasVirtualDestructor(TCppType_t type)
 
RPY_EXPORTED bool IsConstMethod(TCppMethod_t)
 
RPY_EXPORTED bool HasComplexHierarchy(TCppType_t type)
 
RPY_EXPORTED std::vector< TCppScope_t > GetUsingNamespaces(TCppScope_t)
 
RPY_EXPORTED bool IsTemplatedConstructor(TCppScope_t scope, TCppIndex_t imeth)
 
RPY_EXPORTED TCppIndex_t GetNumDatamembers(TCppScope_t scope)
 
RPY_EXPORTED TCppIndex_t GetGlobalOperator(TCppType_t scope, const std::string &lc, const std::string &rc, const std::string &op)
 
RPY_EXPORTED TCppFuncAddr_t GetFunctionAddress(TCppMethod_t method, bool check_enabled=true)
 
RPY_EXPORTED TCppIndex_t GetNumEnumData(TCppEnum_t)
 
RPY_EXPORTED TCppIndex_t GetNumBases(TCppType_t type)
 
RPY_EXPORTED TCppIndex_t GetNumBasesLongestBranch(TCppType_t type)
Retrieve number of base classes in the longest branch of the inheritance tree.
 
RPY_EXPORTED TCppIndex_t GetNumTemplatedMethods(TCppScope_t scope)
 
RPY_EXPORTED std::string GetMethodPrototype(TCppScope_t scope, TCppMethod_t, bool show_formalargs)
 
RPY_EXPORTED std::string GetMethodResultType(TCppMethod_t)
 
RPY_EXPORTED std::string GetFinalName(TCppType_t type)
 
RPY_EXPORTED char * CallS(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args, size_t *length)
 
RPY_EXPORTED std::string GetMethodArgDefault(TCppMethod_t, TCppIndex_t iarg)
 
RPY_EXPORTED bool IsMethodTemplate(TCppScope_t scope, TCppIndex_t imeth)
 
RPY_EXPORTED std::string GetDatamemberName(TCppScope_t scope, TCppIndex_t idata)
 
RPY_EXPORTED bool IsPublicMethod(TCppMethod_t method)
 
RPY_EXPORTED intptr_t GetDatamemberOffset(TCppScope_t scope, TCppIndex_t idata)
 
RPY_EXPORTED std::string GetMethodFullName(TCppMethod_t)
 
RPY_EXPORTED short CallH(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED bool IsProtectedMethod(TCppMethod_t method)
 
RPY_EXPORTED bool Compile(const std::string &code)
 
RPY_EXPORTED Long64_t CallLL(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
 
RPY_EXPORTED TCppEnum_t GetEnum(TCppScope_t scope, const std::string &enum_name)
 
void(* DelFunc_t)(void *)
 
std::string ResolveTypedef(const char *tname, bool resolveAll=false)
 
std::string CleanType(const char *typeDesc, int mode=0, const char **tail=nullptr)
Cleanup type description, redundant blanks removed and redundant tail ignored return *tail = pointer ...
 
std::string ShortType(const char *typeDesc, int mode)
Return the absolute type of typeDesc.
 
union CPyCppyy::Parameter::Value fValue
 
static uint64_t sum(uint64_t i)