Mercurial > octave
view libinterp/corefcn/oct-handle.h @ 29163:8f67ad8b3103
maint: Updating naming conventions for exceptions and use const where possible.
* GLCanvas.cc, interpreter-qobject.cc, file-editor-tab.cc,
octave-qscintilla.cc, octave-qobject.cc, Cell.cc, __eigs__.cc,
__magick_read__.cc, __qp__.cc, daspk.cc, dasrt.cc, dassl.cc, data.cc,
file-io.cc, graphics.cc, graphics.in.h, input.cc, interpreter.cc,
ls-mat-ascii.cc, lsode.cc, oct-handle.h, oct-map.cc, quad.cc, rand.cc,
sparse.cc, sub2ind.cc, toplev.cc, utils.cc, __init_gnuplot__.cc, __ode15__.cc,
cdef-object.cc, ov-base-diag.cc, ov-base-mat.cc, ov-base-sparse.cc,
ov-base.cc, ov-fcn-handle.cc, ov-java.cc, ov-perm.cc, ov-range.cc,
ov-re-diag.cc, ov-str-mat.cc, ov.cc, pt-assign.cc, pt-eval.cc, pt-idx.cc,
pt-jit.cc, pt.cc, Array-util.cc, randmtzig.cc:
Update naming conventions for exceptions to use initial letter of exception
type. For example, "execution_exception" is named "ee", "index_exception" is
"ie". Catch "const" exceptions where possible.
* gzip.cc: Add block to catch and throw interrupt_exceptions before having
a catch block "(...)" for everything else.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 08 Dec 2020 13:25:03 -0800 |
parents | bd51beb6205e |
children | 7854d5752dd2 |
line wrap: on
line source
//////////////////////////////////////////////////////////////////////// // // Copyright (C) 2007-2020 The Octave Project Developers // // See the file COPYRIGHT.md in the top-level directory of this // distribution or <https://octave.org/copyright/>. // // This file is part of Octave. // // Octave is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Octave is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Octave; see the file COPYING. If not, see // <https://www.gnu.org/licenses/>. // //////////////////////////////////////////////////////////////////////// #if ! defined (octave_oct_handle_h) #define octave_oct_handle_h 1 #include "octave-config.h" #include "dMatrix.h" #include "lo-ieee.h" #include "error.h" #include "ov.h" // --------------------------------------------------------------------- class octave_handle { public: octave_handle (void) : val (octave::numeric_limits<double>::NaN ()) { } octave_handle (const octave_value& a) : val (octave::numeric_limits<double>::NaN ()) { if (a.isempty ()) ; // do nothing else { try { val = a.double_value (); } catch (octave::execution_exception& ee) { error (ee, "invalid handle"); } } } octave_handle (int a) : val (a) { } octave_handle (double a) : val (a) { } octave_handle (const octave_handle& a) : val (a.val) { } octave_handle& operator = (const octave_handle& a) { if (&a != this) val = a.val; return *this; } ~octave_handle (void) = default; double value (void) const { return val; } octave_value as_octave_value (void) const { return ok () ? octave_value (val) : octave_value (Matrix ()); } // Prefix increment/decrement operators. octave_handle& operator ++ (void) { ++val; return *this; } octave_handle& operator -- (void) { --val; return *this; } // Postfix increment/decrement operators. const octave_handle operator ++ (int) { octave_handle old_value = *this; ++(*this); return old_value; } const octave_handle operator -- (int) { octave_handle old_value = *this; --(*this); return old_value; } bool ok (void) const { return ! octave::math::isnan (val); } private: double val; }; inline bool operator == (const octave_handle& a, const octave_handle& b) { return a.value () == b.value (); } inline bool operator != (const octave_handle& a, const octave_handle& b) { return a.value () != b.value (); } inline bool operator < (const octave_handle& a, const octave_handle& b) { return a.value () < b.value (); } inline bool operator <= (const octave_handle& a, const octave_handle& b) { return a.value () <= b.value (); } inline bool operator >= (const octave_handle& a, const octave_handle& b) { return a.value () >= b.value (); } inline bool operator > (const octave_handle& a, const octave_handle& b) { return a.value () > b.value (); } #endif