Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
cppjit_interop.h
Go to the documentation of this file.
1#ifndef CPPJIT_INTEROP_H
2#define CPPJIT_INTEROP_H
3
4#include <CppInterOp/CppInterOpTypes.h>
5#include <CppInterOp/Dispatch.h>
6
7// Standard
8#include <cassert>
9#include <set>
10#include <stddef.h>
11#include <stdint.h>
12#include <string>
13#include <vector>
14
15#include "callcontext.h"
16#include "precommondefs.h"
17
18// some more types; assumes cppjit_interop.h follows Python.h
19#ifndef PY_LONG_LONG
20#ifdef _WIN32
21typedef __int64 PY_LONG_LONG;
22#else
23typedef long long PY_LONG_LONG;
24#endif
25#endif
26
27#ifndef PY_ULONG_LONG
28#ifdef _WIN32
29typedef unsigned __int64 PY_ULONG_LONG;
30#else
31typedef unsigned long long PY_ULONG_LONG;
32#endif
33#endif
34
35#ifndef PY_LONG_DOUBLE
36typedef long double PY_LONG_DOUBLE;
37#endif
38
39namespace cppjit::interop {
40typedef Cpp::DeclRef TCppScope_t;
41typedef Cpp::TypeRef TCppType_t;
42typedef Cpp::ObjectRef TCppObject_t;
43typedef Cpp::FuncRef TCppMethod_t;
44typedef Cpp::InterpRef TInterp_t;
45typedef size_t TCppIndex_t;
46typedef void* TCppFuncAddr_t;
47
48// direct interpreter access -------------------------------------------------
50bool Compile(const std::string& code, bool silent = false);
51// the interpreter lock (ROOT's gInterpreterMutex when thread safety is on)
52// for Cpp:: calls made directly from Python; recursive, pair the calls
54void LockInterpreter();
58std::string ToString(TCppScope_t klass, TCppObject_t obj);
59
60// name to opaque C++ scope representation -----------------------------------
62std::string ResolveName(const std::string& cppitem_name);
74TCppType_t GetReferencedType(TCppType_t type, bool rvalue = false);
76std::string ResolveEnum(TCppScope_t enum_scope);
86bool IsIntegerType(TCppType_t type, bool* is_signed = nullptr);
92TCppType_t GetType(const std::string& name, bool enable_slow_lookup = false);
94bool AppendTypesSlow(const std::string& name,
95 std::vector<Cpp::TemplateArgInfo>& types,
96 TCppScope_t parent = nullptr);
98TCppType_t GetComplexType(const std::string& element_type);
100TCppScope_t GetScope(const std::string& scope_name,
101 TCppScope_t parent_scope = TCppScope_t{});
103TCppScope_t GetUnderlyingScope(TCppScope_t scope);
105TCppScope_t GetFullScope(const std::string& scope_name);
107TCppScope_t GetTypeScope(TCppScope_t klass);
109TCppScope_t GetNamed(const std::string& scope_name,
110 TCppScope_t parent_scope = TCppScope_t{});
112bool IsVisibleName(const std::string& name,
113 TCppScope_t parent_scope = TCppScope_t{});
115TCppScope_t GetParentScope(TCppScope_t scope);
117TCppScope_t GetScopeFromType(TCppType_t type);
119TCppType_t GetTypeFromScope(TCppScope_t klass);
121TCppScope_t GetGlobalScope();
123TCppScope_t GetActualClass(TCppScope_t klass, TCppObject_t obj);
125size_t SizeOf(TCppScope_t klass);
128
130bool IsBuiltin(const std::string& type_name);
131
134
136bool IsComplete(TCppScope_t type);
137
138// memory management ---------------------------------------------------------
140TCppObject_t Allocate(TCppScope_t scope);
142void Deallocate(TCppScope_t scope, TCppObject_t instance);
144TCppObject_t Construct(TCppScope_t scope, void* arena = nullptr);
146void Destruct(TCppScope_t scope, TCppObject_t instance);
147
148// method/function dispatching -----------------------------------------------
150void CallV(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args);
152unsigned char CallB(TCppMethod_t method, TCppObject_t self, size_t nargs,
153 void* args);
155char CallC(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args);
157short CallH(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args);
159int CallI(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args);
161long CallL(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args);
163PY_LONG_LONG CallLL(TCppMethod_t method, TCppObject_t self, size_t nargs,
164 void* args);
166float CallF(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args);
168double CallD(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args);
170PY_LONG_DOUBLE CallLD(TCppMethod_t method, TCppObject_t self, size_t nargs,
171 void* args);
172
174void* CallR(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args);
176char* CallS(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args,
177 size_t* length);
179TCppObject_t CallConstructor(TCppMethod_t method, TCppScope_t klass,
180 size_t nargs, void* args);
182void CallDestructor(TCppScope_t type, TCppObject_t self);
184TCppObject_t CallO(TCppMethod_t method, TCppObject_t self, size_t nargs,
185 void* args, TCppType_t result_type);
186
189 bool check_enabled = true);
190
191// handling of function argument buffer --------------------------------------
193void* AllocateFunctionArgs(size_t nargs);
195void DeallocateFunctionArgs(void* args);
197size_t GetFunctionArgSizeof();
200
201// scope reflection information ----------------------------------------------
203bool IsNamespace(TCppScope_t scope);
205bool IsClass(TCppScope_t scope);
207bool IsTemplate(TCppScope_t scope);
209bool IsTemplateInstantiation(TCppScope_t scope);
211bool IsTypedefed(TCppScope_t scope);
213bool IsAbstract(TCppScope_t scope);
215bool IsEnumScope(TCppScope_t scope);
217bool IsEnumConstant(TCppScope_t scope);
221bool IsAggregate(TCppScope_t type);
223bool IsDefaultConstructable(TCppScope_t scope);
225bool IsVariable(TCppScope_t scope);
226
228void GetAllCppNames(TCppScope_t scope, std::set<std::string>& cppnames);
229
230// namespace reflection information ------------------------------------------
232std::vector<TCppScope_t> GetUsingNamespaces(TCppScope_t);
233
234// class reflection information ----------------------------------------------
236std::string GetFinalName(TCppScope_t type);
238std::string GetScopedFinalName(TCppScope_t type);
240bool HasVirtualDestructor(TCppScope_t type);
242TCppIndex_t GetNumBases(TCppScope_t klass);
244TCppIndex_t GetNumBasesLongestBranch(TCppScope_t klass);
246std::string GetBaseName(TCppScope_t klass, TCppIndex_t ibase);
248TCppScope_t GetBaseScope(TCppScope_t klass, TCppIndex_t ibase);
250bool IsSubclass(TCppScope_t derived, TCppScope_t base);
252bool IsSmartPtr(TCppScope_t klass);
254bool GetSmartPtrInfo(TCppScope_t klass, TCppScope_t* raw, TCppMethod_t* deref);
255// calculate offsets between declared and actual type, up-cast: direction > 0;
256// down-cast: direction < 0
258ptrdiff_t GetBaseOffset(TCppScope_t derived, TCppScope_t base,
259 TCppObject_t address, int direction,
260 bool rerror = false);
261
262// method/function reflection information ------------------------------------
264void GetClassMethods(TCppScope_t scope, std::vector<TCppMethod_t>& methods);
266std::vector<TCppMethod_t> GetMethodsFromName(TCppScope_t scope,
267 const std::string& name);
269std::string GetName(TCppScope_t);
271std::string GetFullName(TCppScope_t);
281std::string GetMethodArgName(TCppMethod_t, TCppIndex_t iarg);
286 const std::string& req_type);
288std::string GetMethodArgTypeAsString(TCppMethod_t method, TCppIndex_t iarg);
291 TCppIndex_t iarg);
295std::string GetMethodSignature(TCppMethod_t, bool show_formal_args,
296 TCppIndex_t max_args = (TCppIndex_t)-1);
298bool IsFunctionType(TCppType_t typ);
302void GetFnTypeSig(TCppType_t fn_type, std::vector<TCppType_t>& arg_types);
303/// Spells out a function type, or a pointer or reference to one, as the
304/// return type and the parenthesized argument list, e.g. "int" and
305/// "(double, const char *)"; the argument list is formatted as by
306/// GetMethodSignature(). Member function pointers are not function pointers
307/// and are rejected.
308/// \returns false if \p fn_type is not a function (pointer) type.
310bool GetFnTypeSigAsString(TCppType_t fn_type, std::string& ret_type,
311 std::string& signature);
313bool IsSameType(TCppType_t typ1, TCppType_t typ2);
315bool IsSimilarFnTypes(TCppType_t typ1, TCppType_t typ2);
317std::string GetDoxygenComment(TCppScope_t scope, bool strip_markers = true);
320// Templated method/function reflection information
321// ------------------------------------
323void GetTemplatedMethods(TCppScope_t scope, std::vector<TCppMethod_t>& methods);
325TCppIndex_t GetNumTemplatedMethods(TCppScope_t scope,
326 bool accept_namespace = false);
328std::string GetTemplatedMethodName(TCppScope_t scope, TCppIndex_t imeth);
330bool ExistsMethodTemplate(TCppScope_t scope, const std::string& name);
334bool IsStaticTemplate(TCppScope_t scope, const std::string& name);
336TCppMethod_t GetMethodTemplate(TCppScope_t scope, const std::string& name,
337 const std::string& proto);
339void GetClassOperators(TCppScope_t klass, const std::string& opname,
340 std::vector<TCppMethod_t>& operators);
342TCppMethod_t GetGlobalOperator(TCppScope_t scope, const std::string& lc,
343 const std::string& rc, const std::string& op);
344
345// method properties ---------------------------------------------------------
347bool IsDeletedMethod(TCppMethod_t method);
349bool IsPublicMethod(TCppMethod_t method);
353bool IsPrivateMethod(TCppMethod_t method);
355bool IsConstructor(TCppMethod_t method);
357bool IsDestructor(TCppMethod_t method);
359bool IsStaticMethod(TCppMethod_t method);
361bool IsExplicit(TCppMethod_t method);
362
363// data member reflection information ----------------------------------------
365void GetDatamembers(TCppScope_t scope, std::vector<TCppScope_t>& datamembers);
369TCppScope_t WrapLambdaFromVariable(TCppScope_t var);
375std::string GetDatamemberTypeAsString(TCppScope_t var);
377std::string GetTypeAsString(TCppType_t type);
379intptr_t GetDatamemberOffset(TCppScope_t var, TCppScope_t klass = nullptr);
381bool CheckDatamember(TCppScope_t scope, const std::string& name);
382
383// // data member properties
384// ----------------------------------------------------
386bool IsPublicData(TCppScope_t var);
388bool IsProtectedData(TCppScope_t var);
390bool IsPrivateData(TCppScope_t var);
392bool IsStaticDatamember(TCppScope_t var);
394bool IsConstVar(TCppScope_t var);
398std::vector<long int> GetDimensions(TCppType_t type);
399
400// enum properties -----------------------------------------------------------
402std::vector<TCppScope_t> GetEnumConstants(TCppScope_t scope);
404TCppType_t GetEnumConstantType(TCppScope_t scope);
406long long GetEnumDataValue(TCppScope_t scope);
407
409TCppScope_t InstantiateTemplate(TCppScope_t tmpl, Cpp::TemplateArgInfo* args,
410 size_t args_size);
411
413void DumpScope(TCppScope_t scope);
414} // namespace cppjit::interop
415
416#endif // !CPPJIT_INTEROP_H
static Roo_reg_AGKInteg1D instance
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 length
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 req_type
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
char name[80]
Definition TGX11.cxx:142
long double PY_LONG_DOUBLE
unsigned long long PY_ULONG_LONG
long long PY_LONG_LONG
bool IsConstVar(TCppScope_t var)
Cpp::TypeRef TCppType_t
Definition API.h:42
unsigned char CallB(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
TCppScope_t GetFullScope(const std::string &scope_name)
void GetDatamembers(TCppScope_t scope, std::vector< TCppScope_t > &datamembers)
Cpp::ObjectRef TCppObject_t
Definition API.h:43
TCppType_t GetTypeFromScope(TCppScope_t klass)
std::string GetTypeAsString(TCppType_t type)
TCppType_t GetDatamemberType(TCppScope_t data)
TCppType_t ResolveEnumPointerType(TCppType_t type)
bool ExistsMethodTemplate(TCppScope_t scope, const std::string &name)
bool IsFunctionType(TCppType_t typ)
TCppScope_t WrapLambdaFromVariable(TCppScope_t var)
void DeallocateFunctionArgs(void *args)
bool IsBuiltin(const std::string &type_name)
void CallV(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
std::string GetName(TCppScope_t)
std::string ToString(TCppScope_t klass, TCppObject_t obj)
bool IsClassType(TCppType_t type)
void CallDestructor(TCppScope_t type, TCppObject_t self)
PY_LONG_DOUBLE CallLD(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
bool CheckDatamember(TCppScope_t scope, const std::string &name)
TCppMethod_t GetMethodTemplate(TCppScope_t scope, const std::string &name, const std::string &proto)
bool IsTemplateInstantiation(TCppScope_t scope)
TCppMethod_t AdaptFunctionForLambdaReturn(TCppMethod_t fn)
bool IsStaticTemplate(TCppScope_t scope, const std::string &name)
bool IsConstructor(TCppMethod_t method)
std::string GetMethodArgCanonTypeAsString(TCppMethod_t method, TCppIndex_t iarg)
bool HasVirtualDestructor(TCppScope_t type)
TCppIndex_t GetNumTemplatedMethods(TCppScope_t scope, bool accept_namespace=false)
TCppScope_t GetActualClass(TCppScope_t klass, TCppObject_t obj)
void GetTemplatedMethods(TCppScope_t scope, std::vector< TCppMethod_t > &methods)
std::string ResolveName(const std::string &cppitem_name)
std::string GetMethodArgTypeAsString(TCppMethod_t method, TCppIndex_t iarg)
TCppIndex_t GetMethodReqArgs(TCppMethod_t)
bool AppendTypesSlow(const std::string &name, std::vector< Cpp::TemplateArgInfo > &types, TCppScope_t parent=nullptr)
bool IsAbstract(TCppScope_t scope)
TCppScope_t GetParentScope(TCppScope_t scope)
std::string GetMethodReturnTypeAsString(TCppMethod_t)
TCppType_t GetReferencedType(TCppType_t type, bool rvalue=false)
TCppIndex_t GetMethodNumArgs(TCppMethod_t)
bool IsStaticDatamember(TCppScope_t var)
bool IsProtectedMethod(TCppMethod_t method)
Cpp::InterpRef TInterp_t
bool IsClass(TCppScope_t scope)
bool GetFnTypeSigAsString(TCppType_t fn_type, std::string &ret_type, std::string &signature)
Spells out a function type, or a pointer or reference to one, as the return type and the parenthesize...
void Destruct(TCppScope_t scope, TCppObject_t instance)
TCppIndex_t GetNumBases(TCppScope_t klass)
int CallI(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
TCppIndex_t CompareMethodArgType(TCppMethod_t, TCppIndex_t iarg, const std::string &req_type)
bool IsSubclass(TCppScope_t derived, TCppScope_t base)
TCppScope_t GetNamed(const std::string &scope_name, TCppScope_t parent_scope=TCppScope_t{})
intptr_t GetDatamemberOffset(TCppScope_t var, TCppScope_t klass=nullptr)
size_t SizeOfType(TCppType_t type)
Cpp::FuncRef TCppMethod_t
Definition API.h:44
bool IsPublicData(TCppScope_t var)
TCppType_t GetMethodArgType(TCppMethod_t, TCppIndex_t iarg)
TCppScope_t GetBaseScope(TCppScope_t klass, TCppIndex_t ibase)
bool IsIntegerType(TCppType_t type, bool *is_signed=nullptr)
bool IsFunctionPointerType(TCppType_t type)
short CallH(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
bool IsTypedefed(TCppScope_t scope)
bool IsPrivateMethod(TCppMethod_t method)
TCppObject_t Allocate(TCppScope_t scope)
bool IsEnumScope(TCppScope_t scope)
char CallC(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
bool IsSimilarFnTypes(TCppType_t typ1, TCppType_t typ2)
void GetClassMethods(TCppScope_t scope, std::vector< TCppMethod_t > &methods)
TCppMethod_t GetGlobalOperator(TCppScope_t scope, const std::string &lc, const std::string &rc, const std::string &op)
bool GetSmartPtrInfo(TCppScope_t klass, TCppScope_t *raw, TCppMethod_t *deref)
TCppMethod_t ReduceReturnType(TCppMethod_t fn, TCppType_t reduce)
void * AllocateFunctionArgs(size_t nargs)
void GetClassOperators(TCppScope_t klass, const std::string &opname, std::vector< TCppMethod_t > &operators)
TCppObject_t CallO(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args, TCppType_t result_type)
bool IsPointerType(TCppType_t type)
std::string GetMethodArgName(TCppMethod_t, TCppIndex_t iarg)
void GetFnTypeSig(TCppType_t fn_type, std::vector< TCppType_t > &arg_types)
TCppFuncAddr_t GetFunctionAddress(TCppMethod_t method, bool check_enabled=true)
long long GetEnumDataValue(TCppScope_t scope)
size_t SizeOf(TCppScope_t klass)
std::string GetDoxygenComment(TCppScope_t scope, bool strip_markers=true)
TCppType_t GetMethodReturnType(TCppMethod_t)
TCppType_t ResolveType(TCppType_t cppitem_name)
TCppScope_t GetUnderlyingScope(TCppScope_t scope)
std::string GetMethodSignature(TCppMethod_t, bool show_formal_args, TCppIndex_t max_args=(TCppIndex_t) -1)
bool IsExplicit(TCppMethod_t method)
TCppScope_t GetGlobalScope()
std::string GetTemplatedMethodName(TCppScope_t scope, TCppIndex_t imeth)
bool IsVisibleName(const std::string &name, TCppScope_t parent_scope=TCppScope_t{})
std::string GetFullName(TCppScope_t)
TCppScope_t GetTypeScope(TCppScope_t klass)
bool IsTemplate(TCppScope_t scope)
bool IsDestructor(TCppMethod_t method)
std::vector< TCppScope_t > GetEnumConstants(TCppScope_t scope)
double CallD(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
bool Compile(const std::string &code, bool silent=false)
TCppType_t GetPointerType(TCppType_t type)
std::vector< TCppMethod_t > GetMethodsFromName(TCppScope_t scope, const std::string &name)
std::string ResolveEnum(TCppScope_t enum_scope)
size_t TCppIndex_t
Definition API.h:45
void * CallR(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
PY_LONG_LONG CallLL(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
bool IsDefaultConstructable(TCppScope_t scope)
TCppObject_t CallConstructor(TCppMethod_t method, TCppScope_t klass, size_t nargs, void *args)
bool IsDeletedMethod(TCppMethod_t method)
bool IsLValueReferenceType(TCppType_t type)
bool IsNamespace(TCppScope_t scope)
bool IsTemplatedMethod(TCppMethod_t method)
void DumpScope(TCppScope_t scope)
TCppScope_t GetScopeFromType(TCppType_t type)
TCppType_t GetFnTypeFromStdFn(TCppType_t fn_type)
std::string GetBaseName(TCppScope_t klass, TCppIndex_t ibase)
TCppType_t GetRealType(TCppType_t type)
TCppIndex_t GetNumBasesLongestBranch(TCppScope_t klass)
TCppScope_t GetScope(const std::string &scope_name, TCppScope_t parent_scope=TCppScope_t{})
TCppType_t GetEnumConstantType(TCppScope_t scope)
bool IsSameType(TCppType_t typ1, TCppType_t typ2)
bool IsEnumConstant(TCppScope_t scope)
std::string GetFinalName(TCppScope_t type)
bool IsProtectedData(TCppScope_t var)
bool IsLambdaClass(TCppType_t type)
bool IsConstMethod(TCppMethod_t)
ptrdiff_t GetBaseOffset(TCppScope_t derived, TCppScope_t base, TCppObject_t address, int direction, bool rerror=false)
TCppObject_t Construct(TCppScope_t scope, void *arena=nullptr)
bool IsPrivateData(TCppScope_t var)
float CallF(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
void Deallocate(TCppScope_t scope, TCppObject_t instance)
void * TCppFuncAddr_t
Definition API.h:46
bool IsMutablePtrRefType(TCppType_t type)
bool IsVariable(TCppScope_t scope)
bool IsSmartPtr(TCppScope_t klass)
std::string GetMethodArgDefault(TCppMethod_t, TCppIndex_t iarg)
bool IsStaticMethod(TCppMethod_t method)
char * CallS(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args, size_t *length)
bool IsRValueReferenceType(TCppType_t type)
TCppType_t GetComplexType(const std::string &element_type)
std::vector< TCppScope_t > GetUsingNamespaces(TCppScope_t)
bool IsPublicMethod(TCppMethod_t method)
TCppType_t GetType(const std::string &name, bool enable_slow_lookup=false)
bool IsAggregate(TCppScope_t type)
std::string GetScopedFinalName(TCppScope_t type)
void GetAllCppNames(TCppScope_t scope, std::set< std::string > &cppnames)
size_t GetFunctionArgTypeoffset()
std::string GetDatamemberTypeAsString(TCppScope_t var)
TCppType_t ResolveEnumReferenceType(TCppType_t type)
long CallL(TCppMethod_t method, TCppObject_t self, size_t nargs, void *args)
Cpp::DeclRef TCppScope_t
Definition API.h:41
std::vector< long int > GetDimensions(TCppType_t type)
bool IsEnumType(TCppType_t type)
bool IsComplete(TCppScope_t type)
TCppScope_t InstantiateTemplate(TCppScope_t tmpl, Cpp::TemplateArgInfo *args, size_t args_size)
#define RPY_EXPORTED