41 if (!
isVar(param.get()))
43 auto* var =
static_cast<CppVar*
>(param.get());
49 if (templStartPos != std::string::npos)
51 while (isspace(var->varType()->baseType()[--templStartPos]))
54 if (var->varType()->baseType().substr(0, templStartPos) !=
name_)
57 else if (var->varType()->baseType() !=
name_)
75 if (!
isVar(param.get()))
77 auto* var =
static_cast<CppVar*
>(param.get());
85 if (templStartPos != std::string::npos)
87 while (isspace(var->varType()->baseType()[--templStartPos]))
90 if (var->varType()->baseType().substr(0, templStartPos) !=
name_)
93 else if (var->varType()->baseType() !=
name_)
166 if (!ctor->hasParams())
174 if (mem->
objType_ == CppObjType::kConstructor)
178 if (ctor->isCopyConstructor())
180 else if (ctor->isMoveConstructor())
183 else if (mem->
objType_ == CppObjType::kDestructor)
bool operator==(const CppExpr &expr1, const CppExpr &expr2)
CppObjType objType(CppObj *cppObj)
bool forEachMember(CppCompoundEPtr compound, std::function< bool(CppObj *)> visitor)
bool isPureVirtual(CppFunctionBase *func)
bool isConst(CppFunctionBase *func)
bool isClassLike(CppObj *cppObj)
bool isFunction(CppObj *cppObj)
bool isPublic(CppObj *cppObj)
bool isVar(CppObj *cppObj)
bool isDestructor(CppObj *cppObj)
bool isByRef(CppVarType *varType)
std::uint8_t ptrLevel(CppVarType *varType)
bool isByRValueRef(CppVarType *varType)
std::vector< CppConstructor * > ctors_
bool triviallyConstructable()
CppConstructor * copyCtor_
bool hasPublicVirtualMethod()
void assignSpecialMember(CppObj *mem)
CppConstructor * moveCtor_
TriStateBool hasPureVirtual_
TriStateBool isCopyConstructor_
TriStateBool isMoveConstructor_
An expression in a C/C++ program.
CppParamVectorPtr params_
An abstract class that is used as base class of all other classes.
Class to represent C++ variable definition.