35 lines
1.0 KiB
C++
35 lines
1.0 KiB
C++
#include "FullyOverloadedFunction.h"
|
|
|
|
using namespace std;
|
|
|
|
namespace wrap {
|
|
const std::array<std::string, 2> FullyOverloadedFunction::pythonKeywords{
|
|
{"print", "lambda"}};
|
|
|
|
/* ************************************************************************* */
|
|
std::string FullyOverloadedFunction::pyx_functionCall(
|
|
const std::string& caller,
|
|
const std::string& funcName, size_t iOverload) const {
|
|
|
|
string ret;
|
|
if (!returnVals_[iOverload].isPair && !returnVals_[iOverload].type1.isPtr &&
|
|
returnVals_[iOverload].type1.isNonBasicType()) {
|
|
ret = returnVals_[iOverload].type1.make_shared_pxd_class_in_pyx() + "(";
|
|
}
|
|
|
|
// actual function call ...
|
|
if (!caller.empty()) ret += caller + ".";
|
|
ret += funcName;
|
|
if (templateArgValue_) ret += "[" + templateArgValue_->pxd_class_in_pyx() + "]";
|
|
//... with argument list
|
|
ret += "(" + argumentList(iOverload).pyx_asParams() + ")";
|
|
|
|
if (!returnVals_[iOverload].isPair && !returnVals_[iOverload].type1.isPtr &&
|
|
returnVals_[iOverload].type1.isNonBasicType())
|
|
ret += ")";
|
|
|
|
return ret;
|
|
}
|
|
|
|
}
|