text: // Generated from /POI/java/org/apache/poi/ss/formula/functions/FinanceFunction.java
  
  #pragma once
  
  #include <fwd-POI.hpp>
  #include <java/lang/fwd-POI.hpp>
  #include <org/apache/poi/ss/formula/eval/fwd-POI.hpp>
  #include <org/apache/poi/ss/formula/functions/fwd-POI.hpp>
  #include <org/apache/poi/ss/formula/functions/FinanceFunction.hpp>
  
  template<typename ComponentType, typename... Bases> struct SubArray;
  namespace poi
  {
      namespace ss
      {
          namespace formula
          {
              namespace eval
              {
  typedef ::SubArray< ::poi::ss::formula::eval::ValueEval, ::java::lang::ObjectArray > ValueEvalArray;
              } // eval
          } // formula
      } // ss
  } // poi
  
  struct default_init_tag;
  
  class poi::ss::formula::functions::FinanceFunction_4
      : public FinanceFunction
  {
  
  public:
      typedef FinanceFunction super;
  
  public: /* protected */
      double evaluate(double rate, double arg1, double arg2, double arg3, bool type) override;
  
      // Generated
      FinanceFunction_4();
  
  public:
      static ::java::lang::Class *class_();
      ::poi::ss::formula::eval::ValueEval* evaluate(int32_t srcRowIndex, int32_t srcColumnIndex, ::poi::ss::formula::eval::ValueEval* arg0, ::poi::ss::formula::eval::ValueEval* arg1, ::poi::ss::formula::eval::ValueEval* arg2);
      ::poi::ss::formula::eval::ValueEval* evaluate(int32_t srcRowIndex, int32_t srcColumnIndex, ::poi::ss::formula::eval::ValueEval* arg0, ::poi::ss::formula::eval::ValueEval* arg1, ::poi::ss::formula::eval::ValueEval* arg2, ::poi::ss::formula::eval::ValueEval* arg3);
      virtual ::poi::ss::formula::eval::ValueEval* evaluate(int32_t srcRowIndex, int32_t srcColumnIndex, ::poi::ss::formula::eval::ValueEval* arg0, ::poi::ss::formula::eval::ValueEval* arg1, ::poi::ss::formula::eval::ValueEval* arg2, ::poi::ss::formula::eval::ValueEval* arg3, ::poi::ss::formula::eval::ValueEval* arg4);
      ::poi::ss::formula::eval::ValueEval* evaluate(::poi::ss::formula::eval::ValueEvalArray* args, int32_t srcRowIndex, int32_t srcColumnIndex);
  
  public: /* protected */
      virtual double evaluate(::doubleArray* ds);
  
  private:
      virtual ::java::lang::Class* getClass0();
      friend class FinanceFunction;
      friend class FinanceFunction_1;
      friend class FinanceFunction_2;
      friend class FinanceFunction_3;
  };
  