Main Content

matlab::cpplib::runMain

関数をその入力引数を使用して main 関数内で実行

説明

int runMain(std::function<int(std::shared_ptr<MatlabApplication> func, int, const char**)>std::shared_ptr<MatlabApplication>&& app, int argc, const char **argv);

関数をその入力引数を使用して main 関数内で実行します。matlab.cpplib.runMain は、実行する関数、MATLABApplication のインスタンス、および実行する関数への入力を入力として受け入れます。実行の成功または失敗を示すコードを出力として返します。

この関数は、基本関数のロジックを main() のロジックと分けるために任意のプラットフォームで使用できます。macOS では、Cocoa API の要件も満たします。

パラメーター

std::function<int(std::shared_ptr<MATLABApplication>, int, const char**)> func

3 つのパラメーター (MATLABApplication オブジェクトへのポインター、入力引数の数を表す int、入力引数自体を表す const char**) を受け取って int を返す std::function インスタンス。

std::shared_ptr<MATLABApplication>&& app

rvalue として渡される MATLABApplication のインスタンス。

int argc

コマンド ラインからの入力引数の数。

const char **argv

入力引数の配列。

戻り値

int

成功 (慣例により 0) または失敗 (慣例により非ゼロの数値) を示すリターン コード。

MATLABApplication オブジェクトを runMain 内に移動して終了

int myMainFunc(std::shared_ptr<mc::MATLABApplication> app,
    const int argc, const char * argv[])
  {
     try {
        // initialize library, call feval, etc.
     } catch(const std::exception & exc) {
        std::cerr << exc.what() << std::endl;
        return -1;
     }
     return 0; // no error
  }

  int main(const int argc, const char * argv[])
  {
      std::vector<std::u16string> options  ; 
      auto matlabApplication = mc::initMATLABApplication(
            mc::MATLABApplicationMode::IN_PROCESS,options);
      return mc::runMain(myMainFunc, std::move(matlabApplication), argc, argv);
  }

バージョン履歴

R2018a で導入