diff --git a/src/Magnum/Math/Range.h b/src/Magnum/Math/Range.h index b071249b4..b69a68715 100644 --- a/src/Magnum/Math/Range.h +++ b/src/Magnum/Math/Range.h @@ -555,6 +555,19 @@ template Corrade::Utility::Debug& operator<<(Co return debug << Corrade::Utility::Debug::nospace << "})"; } +/* Explicit instantiation for commonly used types */ +#ifndef DOXYGEN_GENERATING_OUTPUT +extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<1, Float>&); +extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<2, Float>&); +extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<3, Float>&); +extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<1, Int>&); +extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<2, Int>&); +extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<3, Int>&); +extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<1, Double>&); +extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<2, Double>&); +extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<3, Double>&); +#endif + template Range Range::translated(const VectorType& vector) const { return {_min + vector, _max + vector}; } diff --git a/src/Magnum/Math/instantiation.cpp b/src/Magnum/Math/instantiation.cpp index 483f138fa..2516b8bcb 100644 --- a/src/Magnum/Math/instantiation.cpp +++ b/src/Magnum/Math/instantiation.cpp @@ -178,6 +178,16 @@ template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Vec template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Vector<2, Double>&); template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Vector<3, Double>&); template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Vector<4, Double>&); + +template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<1, Float>&); +template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<2, Float>&); +template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<3, Float>&); +template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<1, Int>&); +template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<2, Int>&); +template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<3, Int>&); +template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<1, Double>&); +template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<2, Double>&); +template Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug&, const Range<3, Double>&); #endif }}