changeset 33263:a7d829ba6d44

Export Array<T>::ArrayRep from shared library. * Array.h (Array<T>::ArrayRep): Add visibility attributed to template class definition and overridable member functions.
author Markus Mützel <markus.muetzel@gmx.de>
date Thu, 28 Mar 2024 15:46:11 +0100
parents ab68bff7b8b8
children 421c45e180ce
files liboctave/array/Array.h
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/array/Array.h	Thu Mar 28 00:32:26 2024 -0400
+++ b/liboctave/array/Array.h	Thu Mar 28 15:46:11 2024 +0100
@@ -131,7 +131,7 @@
 protected:
 
   //! The real representation of all arrays.
-  class ArrayRep : public Alloc
+  class OCTARRAY_TEMPLATE_API ArrayRep : public Alloc
   {
   public:
 
@@ -144,6 +144,7 @@
     octave_idx_type m_len;
     octave::refcount<octave_idx_type> m_count;
 
+    OCTARRAY_OVERRIDABLE_FUNC_API
     ArrayRep (pointer d, octave_idx_type len)
       : Alloc (), m_data (allocate (len)), m_len (len), m_count (1)
     {
@@ -187,13 +188,16 @@
 
     ~ArrayRep () { deallocate (m_data, m_len); }
 
-    octave_idx_type numel () const { return m_len; }
+    OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type numel () const
+    {
+      return m_len;
+    }
 
     // No assignment!
 
     ArrayRep& operator = (const ArrayRep&) = delete;
 
-    pointer allocate (size_t len)
+    OCTARRAY_OVERRIDABLE_FUNC_API pointer allocate (size_t len)
     {
       pointer data = Alloc_traits::allocate (*this, len);
       for (size_t i = 0; i < len; i++)
@@ -201,7 +205,7 @@
       return data;
     }
 
-    void deallocate (pointer data, size_t len)
+    OCTARRAY_OVERRIDABLE_FUNC_API void deallocate (pointer data, size_t len)
     {
       for (size_t i = 0; i < len; i++)
         T_Alloc_traits::destroy (*this, data+i);