comparison liboctave/numeric/sparse-qr.h @ 31400:e7fc6251b698

Use more specialized API flags for template classes (bug #61711). * oct-conf-post-public.in.h: Add more specific attributes for exporting (specialized) template class instantiations. * liboctave/array/Array.h (Array<T>): Also dllexport member function definitions (on Windows). * Array-*.cc: Move extern template class declarations to before including "Array-base.cc" to avoid some implicit instantiations. * all files: Use new macros for visibility attributes.
author Markus Mützel <markus.muetzel@gmx.de>
date Sat, 05 Nov 2022 19:15:13 +0100
parents 796f54d4ddbf
children e88a07dec498
comparison
equal deleted inserted replaced
31399:4dc9230db992 31400:e7fc6251b698
109 class sparse_qr_rep; 109 class sparse_qr_rep;
110 110
111 std::shared_ptr<sparse_qr_rep> m_rep; 111 std::shared_ptr<sparse_qr_rep> m_rep;
112 }; 112 };
113 113
114 #if defined (__clang__) || defined (_WIN32)
115 // extern instantiations with set visibility/export/import attribute 114 // extern instantiations with set visibility/export/import attribute
116 115
117 extern template class OCTAVE_API sparse_qr<SparseMatrix>; 116 extern template class OCTAVE_EXTERN_TEMPLATE_API sparse_qr<SparseMatrix>;
118 117
119 extern template class OCTAVE_API sparse_qr<SparseComplexMatrix>; 118 extern template class OCTAVE_EXTERN_TEMPLATE_API sparse_qr<SparseComplexMatrix>;
120 #endif
121 119
122 // Provide qrsolve for backward compatibility. 120 // Provide qrsolve for backward compatibility.
123 121
124 extern OCTAVE_API Matrix 122 extern OCTAVE_API Matrix
125 qrsolve (const SparseMatrix& a, const MArray<double>& b, 123 qrsolve (const SparseMatrix& a, const MArray<double>& b,