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;
 | 
						|
}
 | 
						|
 | 
						|
}
 |