diff --git a/src/DebugTools/ShapeRenderer.h b/src/DebugTools/ShapeRenderer.h index b6bf78925..937f6b521 100644 --- a/src/DebugTools/ShapeRenderer.h +++ b/src/DebugTools/ShapeRenderer.h @@ -138,7 +138,12 @@ new DebugTools::ShapeRenderer2D(shape, "red", debugDrawables); @todo Different drawing style for inverted shapes? (marking the "inside" somehow) */ template class MAGNUM_DEBUGTOOLS_EXPORT ShapeRenderer: public SceneGraph::Drawable { + /* MSVC can't cope with <> here */ + #ifndef CORRADE_MSVC2013_COMPATIBILITY friend void Implementation::createDebugMesh<>(ShapeRenderer&, const Shapes::Implementation::AbstractShape&); + #else + template friend void Implementation::createDebugMesh(ShapeRenderer&, const Shapes::Implementation::AbstractShape&); + #endif public: /** diff --git a/src/Shapes/AbstractShape.h b/src/Shapes/AbstractShape.h index cd888807e..0b708a02f 100644 --- a/src/Shapes/AbstractShape.h +++ b/src/Shapes/AbstractShape.h @@ -50,7 +50,12 @@ brief introduction. @see AbstractShape2D, AbstractShape3D */ template class MAGNUM_SHAPES_EXPORT AbstractShape: public SceneGraph::AbstractGroupedFeature, Float> { + /* MSVC can't cope with <> here */ + #ifndef CORRADE_MSVC2013_COMPATIBILITY friend const Implementation::AbstractShape& Implementation::getAbstractShape<>(const AbstractShape&); + #else + template friend const Implementation::AbstractShape& Implementation::getAbstractShape(const Shapes::AbstractShape&); + #endif public: enum: UnsignedInt { diff --git a/src/Shapes/Composition.h b/src/Shapes/Composition.h index c07768397..14bb76f6b 100644 --- a/src/Shapes/Composition.h +++ b/src/Shapes/Composition.h @@ -64,8 +64,14 @@ enum class CompositionOperation: UnsignedByte { Result of logical operations on shapes. See @ref shapes for brief introduction. */ template class MAGNUM_SHAPES_EXPORT Composition { + /* MSVC can't cope with <> here */ + #ifndef CORRADE_MSVC2013_COMPATIBILITY friend Implementation::AbstractShape& Implementation::getAbstractShape<>(Composition&, std::size_t); friend const Implementation::AbstractShape& Implementation::getAbstractShape<>(const Composition&, std::size_t); + #else + template friend Implementation::AbstractShape& Implementation::getAbstractShape(Composition&, std::size_t); + template friend const Implementation::AbstractShape& Implementation::getAbstractShape(const Composition&, std::size_t); + #endif friend struct Implementation::ShapeHelper>; public: