@@ -1461,6 +1461,35 @@ std::string Cppyy::GetMethodArgDefault(TCppMethod_t method, TCppIndex_t iarg)
14611461 return Cpp::GetFunctionArgDefault (method, iarg);
14621462}
14631463
1464+ Cppyy::TCppIndex_t Cppyy::CompareMethodArgType (TCppMethod_t method, TCppIndex_t iarg, const std::string &req_type)
1465+ {
1466+ // if (method) {
1467+ // TFunction* f = m2f(method);
1468+ // TMethodArg* arg = (TMethodArg *)f->GetListOfMethodArgs()->At((int)iarg);
1469+ // void *argqtp = gInterpreter->TypeInfo_QualTypePtr(arg->GetTypeInfo());
1470+
1471+ // TypeInfo_t *reqti = gInterpreter->TypeInfo_Factory(req_type.c_str());
1472+ // void *reqqtp = gInterpreter->TypeInfo_QualTypePtr(reqti);
1473+
1474+ // if (ArgSimilarityScore(argqtp, reqqtp) < 10) {
1475+ // return ArgSimilarityScore(argqtp, reqqtp);
1476+ // }
1477+ // else { // Match using underlying types
1478+ // if(gInterpreter->IsPointerType(argqtp))
1479+ // argqtp = gInterpreter->TypeInfo_QualTypePtr(gInterpreter->GetPointerType(argqtp));
1480+
1481+ // // Handles reference types and strips qualifiers
1482+ // TypeInfo_t *arg_ul = gInterpreter->GetNonReferenceType(argqtp);
1483+ // TypeInfo_t *req_ul = gInterpreter->GetNonReferenceType(reqqtp);
1484+ // argqtp = gInterpreter->TypeInfo_QualTypePtr(gInterpreter->GetUnqualifiedType(gInterpreter->TypeInfo_QualTypePtr(arg_ul)));
1485+ // reqqtp = gInterpreter->TypeInfo_QualTypePtr(gInterpreter->GetUnqualifiedType(gInterpreter->TypeInfo_QualTypePtr(req_ul)));
1486+
1487+ // return ArgSimilarityScore(argqtp, reqqtp);
1488+ // }
1489+ // }
1490+ return 0 ; // Method is not valid
1491+ }
1492+
14641493std::string Cppyy::GetMethodSignature (TCppMethod_t method, bool show_formal_args, TCppIndex_t max_args)
14651494{
14661495 std::ostringstream sig;
0 commit comments