string | CleanType(const char* typeDesc, int mode = 0, const char** tail = 0) |
string | GetLong64_Name(const string& original) |
int | GetSplit(const char* type, vector<std::string>& output, int& nestedLoc) |
bool | IsDefAlloc(const char* alloc, const char* classname) |
bool | IsDefAlloc(const char* alloc, const char* keyclassname, const char* valueclassname) |
bool | IsDefComp(const char* comp, const char* classname) |
bool | IsStdClass(const char* type) |
int | IsSTLCont(const char* type, int testAlloc = 0) |
bool | IsVectorBool(const char* name) |
string | ResolveTypedef(const char* tname, bool resolveAll = false) |
string | ShortType(const char* typeDesc, int mode) |
int | STLArgs(int kind) |
int | STLKind(const char* type) |
return whether or not 'allocname' is the STL default allocator for type 'classname'
return whether or not 'allocname' is the STL default allocator for a key of type 'keyclassname' and a value of type 'valueclassname'
return whether or not 'compare' is the STL default comparator for type 'classname'
Stores in output (after emptying it) the splited type. Stores the location of the tail (nested names) in tailloc (0 indicates no tail). Return the number of elements stored. First in list is the template name or is empty "vector<list<int>,alloc>**" to "vector" "list<int>" "alloc" "**" or "TNamed*" to "" "TNamed" "*"
Cleanup type description, redundant blanks removed and redundant tail ignored return *tail = pointer to last used character if (mode==0) keep keywords if (mode==1) remove keywords outside the template params if (mode>=2) remove the keywords everywhere. if (tail!=0) cut before the trailing * The keywords currently are: "const" , "volatile" removed CleanType(" A<B, C< D, E> > *,F,G>") returns "A<B,C<D,E> >*"
Return the absolute type of typeDesc. E.g.: typeDesc = "class const volatile TNamed**", returns "TNamed**". if (mode&1) remove last "*"s returns "TNamed" if (mode&2) remove default allocators from STL containers if (mode&4) remove all allocators from STL containers if (mode&8) return inner class of stl container. list<innerClass> if (mode&16) return deapest class of stl container. vector<list<deapest>>
type : type name: vector<list<classA,allocator>,allocator> testAlloc: if true, we test allocator, if it is not default result is negative result: 0 : not stl container abs(result): code of container 1=vector,2=list,3=deque,4=map 5=multimap,6=set,7=multiset positive val: we have a vector or list with default allocator to any depth like vector<list<vector<int>>> negative val: STL container other than vector or int, or non default allocator For example: vector<deque<int>> has answer -1