Mercurial > octave
changeset 33342:c2dbaa9dca4f
Use correct attributes for overridable functions.
* ov-base-mat.h, ov-base-scalar.h, ov-base-int.h: Use correct attributes for
overridable member functions of class templates "octave_base_matrix",
"octave_base_scalar", and "octave_base_int".
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sat, 06 Apr 2024 18:04:59 +0200 |
parents | 8e6e656b6f61 |
children | eb8a24370c2b |
files | libinterp/octave-value/ov-base-int.h libinterp/octave-value/ov-base-mat.h libinterp/octave-value/ov-base-scalar.h |
diffstat | 3 files changed, 117 insertions(+), 73 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/octave-value/ov-base-int.h Fri Apr 05 17:18:42 2024 -0700 +++ b/libinterp/octave-value/ov-base-int.h Sat Apr 06 18:04:59 2024 +0200 @@ -72,7 +72,7 @@ OCTINTERP_API octave_base_value * try_narrowing_conversion (); - OCTINTERP_API bool isreal () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool isreal () const { return true; } // void increment () { matrix += 1; } @@ -137,25 +137,31 @@ { public: - OCTINTERP_API octave_base_int_scalar () : octave_base_scalar<T> () { } + OCTINTERP_OVERRIDABLE_FUNC_API + octave_base_int_scalar () : octave_base_scalar<T> () { } - OCTINTERP_API octave_base_int_scalar (const T& s) : octave_base_scalar<T> (s) { } + OCTINTERP_OVERRIDABLE_FUNC_API + octave_base_int_scalar (const T& s) : octave_base_scalar<T> (s) { } - OCTINTERP_API ~octave_base_int_scalar () = default; + OCTINTERP_OVERRIDABLE_FUNC_API ~octave_base_int_scalar () = default; - OCTINTERP_API octave_base_value * clone () const + OCTINTERP_OVERRIDABLE_FUNC_API octave_base_value * clone () const { return new octave_base_int_scalar (*this); } - OCTINTERP_API octave_base_value * empty_clone () const + OCTINTERP_OVERRIDABLE_FUNC_API octave_base_value * empty_clone () const { return new octave_base_int_scalar (); } - OCTINTERP_API octave_base_value * try_narrowing_conversion () + OCTINTERP_OVERRIDABLE_FUNC_API octave_base_value * + try_narrowing_conversion () { return nullptr; } - OCTINTERP_API bool is_maybe_function () const { return false; } + OCTINTERP_OVERRIDABLE_FUNC_API bool is_maybe_function () const + { return false; } - OCTINTERP_API bool isreal () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool isreal () const + { return true; } - OCTINTERP_API bool is_real_scalar () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool is_real_scalar () const + { return true; } // void increment () { scalar += 1; }
--- a/libinterp/octave-value/ov-base-mat.h Fri Apr 05 17:18:42 2024 -0700 +++ b/libinterp/octave-value/ov-base-mat.h Sat Apr 06 18:04:59 2024 +0200 @@ -51,10 +51,12 @@ typedef MT object_type; - OCTINTERP_API octave_base_matrix () + OCTINTERP_OVERRIDABLE_FUNC_API + octave_base_matrix () : octave_base_value (), m_matrix (), m_typ (), m_idx_cache () { } - OCTINTERP_API octave_base_matrix (const MT& m, const MatrixType& t = MatrixType ()) + OCTINTERP_OVERRIDABLE_FUNC_API + octave_base_matrix (const MT& m, const MatrixType& t = MatrixType ()) : octave_base_value (), m_matrix (m), m_typ (t.is_known () ? new MatrixType (t) : nullptr), m_idx_cache () { @@ -62,22 +64,28 @@ m_matrix.resize (dim_vector (0, 0)); } - OCTINTERP_API octave_base_matrix (const octave_base_matrix& m) + OCTINTERP_OVERRIDABLE_FUNC_API + octave_base_matrix (const octave_base_matrix& m) : octave_base_value (), m_matrix (m.m_matrix), m_typ (m.m_typ ? new MatrixType (*m.m_typ) : nullptr), m_idx_cache (m.m_idx_cache ? new octave::idx_vector (*m.m_idx_cache) : nullptr) { } - OCTINTERP_API ~octave_base_matrix () { clear_cached_info (); } + OCTINTERP_OVERRIDABLE_FUNC_API + ~octave_base_matrix () { clear_cached_info (); } - OCTINTERP_API std::size_t byte_size () const { return m_matrix.byte_size (); } + OCTINTERP_OVERRIDABLE_FUNC_API + std::size_t byte_size () const { return m_matrix.byte_size (); } - OCTINTERP_API octave_value squeeze () const { return MT (m_matrix.squeeze ()); } + OCTINTERP_OVERRIDABLE_FUNC_API + octave_value squeeze () const { return MT (m_matrix.squeeze ()); } - OCTINTERP_API octave_value full_value () const { return m_matrix; } + OCTINTERP_OVERRIDABLE_FUNC_API + octave_value full_value () const { return m_matrix; } - OCTINTERP_API void maybe_economize () { m_matrix.maybe_economize (); } + OCTINTERP_OVERRIDABLE_FUNC_API + void maybe_economize () { m_matrix.maybe_economize (); } // We don't need to override all three forms of subsref. The using // declaration will avoid warnings about partially-overloaded virtual @@ -90,7 +98,7 @@ OCTINTERP_API octave_value_list simple_subsref (char type, octave_value_list& idx, int nargout); - OCTINTERP_API octave_value_list + OCTINTERP_OVERRIDABLE_FUNC_API octave_value_list subsref (const std::string& type, const std::list<octave_value_list>& idx, int) { return subsref (type, idx); } @@ -115,65 +123,76 @@ OCTINTERP_API void delete_elements (const octave_value_list& idx); - OCTINTERP_API dim_vector dims () const { return m_matrix.dims (); } + OCTINTERP_OVERRIDABLE_FUNC_API dim_vector + dims () const { return m_matrix.dims (); } - OCTINTERP_API octave_idx_type numel () const { return m_matrix.numel (); } + OCTINTERP_OVERRIDABLE_FUNC_API octave_idx_type + numel () const { return m_matrix.numel (); } - OCTINTERP_API int ndims () const { return m_matrix.ndims (); } + OCTINTERP_OVERRIDABLE_FUNC_API int + ndims () const { return m_matrix.ndims (); } - OCTINTERP_API octave_idx_type nnz () const { return m_matrix.nnz (); } + OCTINTERP_OVERRIDABLE_FUNC_API octave_idx_type + nnz () const { return m_matrix.nnz (); } - OCTINTERP_API octave_value reshape (const dim_vector& new_dims) const + OCTINTERP_OVERRIDABLE_FUNC_API octave_value + reshape (const dim_vector& new_dims) const { return MT (m_matrix.reshape (new_dims)); } - OCTINTERP_API octave_value permute (const Array<int>& vec, bool inv = false) const + OCTINTERP_OVERRIDABLE_FUNC_API octave_value + permute (const Array<int>& vec, bool inv = false) const { return MT (m_matrix.permute (vec, inv)); } OCTINTERP_API octave_value resize (const dim_vector& dv, bool fill = false) const; - OCTINTERP_API octave_value all (int dim = 0) const + OCTINTERP_OVERRIDABLE_FUNC_API octave_value all (int dim = 0) const { return m_matrix.all (dim); } - OCTINTERP_API octave_value any (int dim = 0) const + OCTINTERP_OVERRIDABLE_FUNC_API octave_value any (int dim = 0) const { return m_matrix.any (dim); } - OCTINTERP_API MatrixType matrix_type () const + OCTINTERP_OVERRIDABLE_FUNC_API MatrixType matrix_type () const { return m_typ ? *m_typ : MatrixType (); } OCTINTERP_API MatrixType matrix_type (const MatrixType& _typ) const; - OCTINTERP_API octave_value diag (octave_idx_type k = 0) const + OCTINTERP_OVERRIDABLE_FUNC_API octave_value + diag (octave_idx_type k = 0) const { return octave_value (m_matrix.diag (k)); } - OCTINTERP_API octave_value diag (octave_idx_type m, octave_idx_type n) const + OCTINTERP_OVERRIDABLE_FUNC_API octave_value + diag (octave_idx_type m, octave_idx_type n) const { return octave_value (m_matrix.diag (m, n)); } - OCTINTERP_API octave_value + OCTINTERP_OVERRIDABLE_FUNC_API octave_value sort (octave_idx_type dim = 0, sortmode mode = ASCENDING) const { return octave_value (m_matrix.sort (dim, mode)); } - OCTINTERP_API octave_value + OCTINTERP_OVERRIDABLE_FUNC_API octave_value sort (Array<octave_idx_type>& sidx, octave_idx_type dim = 0, sortmode mode = ASCENDING) const { return octave_value (m_matrix.sort (sidx, dim, mode)); } - OCTINTERP_API sortmode issorted (sortmode mode = UNSORTED) const + OCTINTERP_OVERRIDABLE_FUNC_API sortmode issorted (sortmode mode = UNSORTED) const { return m_matrix.issorted (mode); } - OCTINTERP_API Array<octave_idx_type> + OCTINTERP_OVERRIDABLE_FUNC_API Array<octave_idx_type> sort_rows_idx (sortmode mode = ASCENDING) const { return m_matrix.sort_rows_idx (mode); } - OCTINTERP_API sortmode is_sorted_rows (sortmode mode = UNSORTED) const + OCTINTERP_OVERRIDABLE_FUNC_API sortmode + is_sorted_rows (sortmode mode = UNSORTED) const { return m_matrix.is_sorted_rows (mode); } - OCTINTERP_API bool is_matrix_type () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool + is_matrix_type () const { return true; } - OCTINTERP_API bool is_full_num_matrix () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool + is_full_num_matrix () const { return true; } - OCTINTERP_API bool isnumeric () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool isnumeric () const { return true; } - OCTINTERP_API bool is_defined () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool is_defined () const { return true; } - OCTINTERP_API bool is_constant () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool is_constant () const { return true; } OCTINTERP_API bool is_true () const; @@ -192,13 +211,13 @@ edit_display (const float_display_format& fmt, octave_idx_type i, octave_idx_type j) const; - OCTINTERP_API MT& matrix_ref () + OCTINTERP_OVERRIDABLE_FUNC_API MT& matrix_ref () { clear_cached_info (); return m_matrix; } - OCTINTERP_API const MT& matrix_ref () const + OCTINTERP_OVERRIDABLE_FUNC_API const MT& matrix_ref () const { return m_matrix; } @@ -211,13 +230,14 @@ // This function exists to support the MEX interface. // You should not use it anywhere else. - OCTINTERP_API const void * mex_get_data () const { return m_matrix.data (); } + OCTINTERP_OVERRIDABLE_FUNC_API const void * + mex_get_data () const { return m_matrix.data (); } protected: MT m_matrix; - OCTINTERP_API octave::idx_vector + OCTINTERP_OVERRIDABLE_FUNC_API octave::idx_vector set_idx_cache (const octave::idx_vector& idx) const { delete m_idx_cache; @@ -225,7 +245,7 @@ return idx; } - OCTINTERP_API void clear_cached_info () const + OCTINTERP_OVERRIDABLE_FUNC_API void clear_cached_info () const { delete m_typ; m_typ = nullptr; delete m_idx_cache; m_idx_cache = nullptr;
--- a/libinterp/octave-value/ov-base-scalar.h Fri Apr 05 17:18:42 2024 -0700 +++ b/libinterp/octave-value/ov-base-scalar.h Sat Apr 06 18:04:59 2024 +0200 @@ -50,20 +50,22 @@ typedef ST scalar_type; - OCTINTERP_API octave_base_scalar () + OCTINTERP_OVERRIDABLE_FUNC_API octave_base_scalar () : octave_base_value (), scalar () { } - OCTINTERP_API octave_base_scalar (const ST& s) + OCTINTERP_OVERRIDABLE_FUNC_API octave_base_scalar (const ST& s) : octave_base_value (), scalar (s) { } - OCTINTERP_API octave_base_scalar (const octave_base_scalar& s) + OCTINTERP_OVERRIDABLE_FUNC_API octave_base_scalar (const octave_base_scalar& s) : octave_base_value (), scalar (s.scalar) { } - OCTINTERP_API ~octave_base_scalar () = default; + OCTINTERP_OVERRIDABLE_FUNC_API ~octave_base_scalar () = default; - OCTINTERP_API octave_value squeeze () const { return scalar; } + OCTINTERP_OVERRIDABLE_FUNC_API octave_value + squeeze () const { return scalar; } - OCTINTERP_API octave_value full_value () const { return scalar; } + OCTINTERP_OVERRIDABLE_FUNC_API octave_value + full_value () const { return scalar; } // We don't need to override all three forms of subsref. The using // declaration will avoid warnings about partially-overloaded virtual @@ -73,7 +75,7 @@ OCTINTERP_API octave_value subsref (const std::string& type, const std::list<octave_value_list>& idx); - OCTINTERP_API octave_value_list + OCTINTERP_OVERRIDABLE_FUNC_API octave_value_list subsref (const std::string& type, const std::list<octave_value_list>& idx, int) { return subsref (type, idx); } @@ -81,36 +83,41 @@ subsasgn (const std::string& type, const std::list<octave_value_list>& idx, const octave_value& rhs); - OCTINTERP_API bool is_constant () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool is_constant () const { return true; } - OCTINTERP_API bool is_defined () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool is_defined () const { return true; } OCTINTERP_API dim_vector dims () const; - OCTINTERP_API octave_idx_type numel () const { return 1; } + OCTINTERP_OVERRIDABLE_FUNC_API octave_idx_type numel () const { return 1; } - OCTINTERP_API int ndims () const { return 2; } + OCTINTERP_OVERRIDABLE_FUNC_API int ndims () const { return 2; } - OCTINTERP_API octave_idx_type nnz () const { return (scalar != ST () ? 1 : 0); } + OCTINTERP_OVERRIDABLE_FUNC_API octave_idx_type + nnz () const { return (scalar != ST () ? 1 : 0); } OCTINTERP_API octave_value permute (const Array<int>&, bool = false) const; OCTINTERP_API octave_value reshape (const dim_vector& new_dims) const; - OCTINTERP_API std::size_t byte_size () const { return sizeof (ST); } + OCTINTERP_OVERRIDABLE_FUNC_API std::size_t + byte_size () const { return sizeof (ST); } - OCTINTERP_API octave_value all (int = 0) const { return (scalar != ST ()); } + OCTINTERP_OVERRIDABLE_FUNC_API octave_value + all (int = 0) const { return (scalar != ST ()); } - OCTINTERP_API octave_value any (int = 0) const { return (scalar != ST ()); } + OCTINTERP_OVERRIDABLE_FUNC_API octave_value + any (int = 0) const { return (scalar != ST ()); } OCTINTERP_API octave_value diag (octave_idx_type k = 0) const; OCTINTERP_API octave_value diag (octave_idx_type m, octave_idx_type n) const; - OCTINTERP_API octave_value sort (octave_idx_type, sortmode) const + OCTINTERP_OVERRIDABLE_FUNC_API octave_value + sort (octave_idx_type, sortmode) const { return octave_value (scalar); } - OCTINTERP_API octave_value + OCTINTERP_OVERRIDABLE_FUNC_API octave_value sort (Array<octave_idx_type>& sidx, octave_idx_type, sortmode) const { sidx.resize (dim_vector (1, 1)); @@ -118,29 +125,37 @@ return octave_value (scalar); } - OCTINTERP_API sortmode issorted (sortmode mode = UNSORTED) const + OCTINTERP_OVERRIDABLE_FUNC_API sortmode + issorted (sortmode mode = UNSORTED) const { return mode == UNSORTED ? ASCENDING : mode; } - OCTINTERP_API Array<octave_idx_type> sort_rows_idx (sortmode) const + OCTINTERP_OVERRIDABLE_FUNC_API Array<octave_idx_type> + sort_rows_idx (sortmode) const { return Array<octave_idx_type> (dim_vector (1, 1), static_cast<octave_idx_type> (0)); } - OCTINTERP_API sortmode is_sorted_rows (sortmode mode = UNSORTED) const + OCTINTERP_OVERRIDABLE_FUNC_API sortmode + is_sorted_rows (sortmode mode = UNSORTED) const { return mode == UNSORTED ? ASCENDING : mode; } - OCTINTERP_API MatrixType matrix_type () const + OCTINTERP_OVERRIDABLE_FUNC_API MatrixType + matrix_type () const { return MatrixType::Diagonal; } - OCTINTERP_API MatrixType matrix_type (const MatrixType&) const + OCTINTERP_OVERRIDABLE_FUNC_API MatrixType + matrix_type (const MatrixType&) const { return matrix_type (); } - OCTINTERP_API bool is_maybe_function () const { return false; } + OCTINTERP_OVERRIDABLE_FUNC_API bool + is_maybe_function () const { return false; } - OCTINTERP_API bool is_scalar_type () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool + is_scalar_type () const { return true; } - OCTINTERP_API bool isnumeric () const { return true; } + OCTINTERP_OVERRIDABLE_FUNC_API bool + isnumeric () const { return true; } OCTINTERP_API bool is_true () const; @@ -162,11 +177,14 @@ // This function exists to support the MEX interface. // You should not use it anywhere else. - OCTINTERP_API const void * mex_get_data () const { return &scalar; } + OCTINTERP_OVERRIDABLE_FUNC_API const void * + mex_get_data () const { return &scalar; } - OCTINTERP_API const ST& scalar_ref () const { return scalar; } + OCTINTERP_OVERRIDABLE_FUNC_API const ST& scalar_ref () const + { return scalar; } - OCTINTERP_API ST& scalar_ref () { return scalar; } + OCTINTERP_OVERRIDABLE_FUNC_API ST& scalar_ref () + { return scalar; } OCTINTERP_API octave_value fast_elem_extract (octave_idx_type n) const;