Mercurial > octave
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, |