// Copyright (C) 2026 Kiyotsugu Arai // SPDX-License-Identifier: LGPL-3.0-or-later // vector.cpp — explicit instantiation of Vector (float, double) // // This causes the float/double Vector code to be compiled exactly once into sangi_matrix.lib, // suppressing template re-instantiation in each TU. // Paired with the extern template declarations on the header side. // In this TU, disable extern template and generate the definitions here #define SANGI_VECTOR_EXPLICIT_INSTANTIATION #include namespace sangi { // --------------------------------------------------------------------------- // Vector // --------------------------------------------------------------------------- template class Vector; template class Vector; // --------------------------------------------------------------------------- // free functions // --------------------------------------------------------------------------- template std::ostream& operator<<(std::ostream&, const Vector&); template std::ostream& operator<<(std::ostream&, const Vector&); template std::string toLatex(const Vector&, const std::string&, std::size_t); template std::string toLatex(const Vector&, const std::string&, std::size_t); } // namespace sangi