matlab::cpplib::runMain

Выполните функцию с ее входными параметрами в основной функции

Описание

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

Выполните функцию с ее входными параметрами в основной функции. matlab.cpplib.runMain принимает как вход функцию, которую вы хотите выполнить, экземпляр MATLABApplication, и входные параметры к функции вы хотите выполниться. Это возвращает, как выведено код, указывающий на успешность или неуспешность выполнения.

Эта функция может использоваться на любой платформе, чтобы разделить логику первичной функции от того из main(). На macOS это также выполняет требования API Какао

Параметры

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

std::function экземпляр, который берет три параметра (а именно, указатель на MATLABApplication объект, int представление количества входных параметров и const char** представление самих входных параметров), и возвращает int.

std::shared_ptr<MATLABApplication>&& app

Экземпляр MATLABApplication, переданный как rvalue.

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