Mercurial > octave
changeset 23107:3f72b4b9b50f
* examples/code/embedded.cc: Update.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 27 Jan 2017 17:47:44 -0500 |
parents | 1a53f9d42ec1 |
children | 48a0bb5d5150 |
files | examples/code/embedded.cc |
diffstat | 1 files changed, 36 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/examples/code/embedded.cc Fri Jan 27 17:44:07 2017 -0500 +++ b/examples/code/embedded.cc Fri Jan 27 17:47:44 2017 -0500 @@ -11,25 +11,45 @@ argv(0) = "embedded"; argv(1) = "-q"; - octave_main (2, argv.c_str_vec (), 1); + octave::embedded_application app (2, argv.c_str_vec ()); + + int status = app.execute (); - octave_idx_type n = 2; - octave_value_list in; + if (status != 0) + { + std::cerr << "creating embedded Octave interpreter failed!" << std::endl; + return status; + } - for (octave_idx_type i = 0; i < n; i++) - in(i) = octave_value (5 * (i + 2)); + try + { + octave_idx_type n = 2; + octave_value_list in; - octave_value_list out = feval ("gcd", in, 1); + for (octave_idx_type i = 0; i < n; i++) + in(i) = octave_value (5 * (i + 2)); + + octave_value_list out = octave::feval ("gcd", in, 1); - if (out.length () > 0) - std::cout << "GCD of [" - << in(0).int_value () - << ", " - << in(1).int_value () - << "] is " << out(0).int_value () - << std::endl; - else - std::cout << "invalid\n"; + if (out.length () > 0) + std::cout << "GCD of [" + << in(0).int_value () + << ", " + << in(1).int_value () + << "] is " << out(0).int_value () + << std::endl; + else + std::cout << "invalid\n"; + } + catch (const octave::exit_exception& ex) + { + std::cerr << "Octave evaluator exited with status = " + << ex.exit_status () << std::endl; + } + catch (const octave::execution_exception&) + { + std::cerr << "error encountered in Octave evaluator!" << std::endl; + } - clean_up_and_exit (0); + return 0; }