From 23d51c9e363b0e5d05e1712668972a724de2372b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 17 Mar 2013 20:43:25 +0100 Subject: [PATCH] GCC 4.5 compatibility: can't default some functions in class body. --- src/AbstractFramebuffer.h | 3 ++- src/Physics/AbstractShape.h | 3 ++- src/Platform/AbstractContextHandler.h | 4 +++- src/SceneGraph/AbstractTranslationRotation2D.h | 4 +++- src/SceneGraph/AbstractTranslationRotation3D.h | 4 +++- src/SceneGraph/AbstractTranslationRotationScaling2D.h | 4 +++- src/SceneGraph/AbstractTranslationRotationScaling3D.h | 4 +++- src/SceneGraph/DualComplexTransformation.h | 4 +++- src/SceneGraph/DualQuaternionTransformation.h | 4 +++- src/SceneGraph/FeatureGroup.h | 4 +++- src/SceneGraph/MatrixTransformation2D.h | 4 +++- src/SceneGraph/MatrixTransformation3D.h | 4 +++- src/SceneGraph/RigidMatrixTransformation2D.h | 4 +++- src/SceneGraph/RigidMatrixTransformation3D.h | 4 +++- src/SceneGraph/Scene.h | 4 +++- 15 files changed, 43 insertions(+), 15 deletions(-) diff --git a/src/AbstractFramebuffer.h b/src/AbstractFramebuffer.h index 0be1f2e34..3ce5f212b 100644 --- a/src/AbstractFramebuffer.h +++ b/src/AbstractFramebuffer.h @@ -184,7 +184,7 @@ class MAGNUM_EXPORT AbstractFramebuffer { blit(source, destination, rectangle, rectangle, mask, BlitFilter::Nearest); } - explicit AbstractFramebuffer() = default; + explicit AbstractFramebuffer(); virtual ~AbstractFramebuffer() = 0; /** @@ -300,6 +300,7 @@ class MAGNUM_EXPORT AbstractFramebuffer { #endif }; +inline AbstractFramebuffer::AbstractFramebuffer() = default; inline AbstractFramebuffer::~AbstractFramebuffer() {} CORRADE_ENUMSET_OPERATORS(AbstractFramebuffer::ClearMask) diff --git a/src/Physics/AbstractShape.h b/src/Physics/AbstractShape.h index ea5083982..19385bccc 100644 --- a/src/Physics/AbstractShape.h +++ b/src/Physics/AbstractShape.h @@ -105,7 +105,7 @@ template class MAGNUM_PHYSICS_EXPORT AbstractShape { typedef typename Implementation::ShapeDimensionTraits::Type Type; #endif - explicit AbstractShape() = default; + explicit AbstractShape(); virtual inline ~AbstractShape() {} /** @brief Shape type */ @@ -130,6 +130,7 @@ template class MAGNUM_PHYSICS_EXPORT AbstractShape { virtual bool collides(const AbstractShape* other) const; }; +template inline AbstractShape::AbstractShape() = default; /** @brief Abstract two-dimensional shape */ typedef AbstractShape<2> AbstractShape2D; diff --git a/src/Platform/AbstractContextHandler.h b/src/Platform/AbstractContextHandler.h index e4bb876a9..da4ec7e0c 100644 --- a/src/Platform/AbstractContextHandler.h +++ b/src/Platform/AbstractContextHandler.h @@ -46,7 +46,7 @@ template class AbstractContextHandl */ virtual VisualId getVisualId(Display nativeDisplay) = 0; - explicit AbstractContextHandler() = default; + explicit AbstractContextHandler(); /** * @brief Destructor @@ -74,6 +74,8 @@ template class AbstractContextHandl virtual void swapBuffers() = 0; }; +template inline AbstractContextHandler::AbstractContextHandler() = default; + }} #endif diff --git a/src/SceneGraph/AbstractTranslationRotation2D.h b/src/SceneGraph/AbstractTranslationRotation2D.h index 4186fee24..612c08cbb 100644 --- a/src/SceneGraph/AbstractTranslationRotation2D.h +++ b/src/SceneGraph/AbstractTranslationRotation2D.h @@ -44,7 +44,7 @@ template #endif class AbstractTranslationRotation2D: public AbstractTransformation<2, T> { public: - explicit AbstractTranslationRotation2D() = default; + explicit AbstractTranslationRotation2D(); /** * @brief Translate object @@ -65,6 +65,8 @@ class AbstractTranslationRotation2D: public AbstractTransformation<2, T> { virtual AbstractTranslationRotation2D* rotate(Math::Rad angle, TransformationType type = TransformationType::Global) = 0; }; +template inline AbstractTranslationRotation2D::AbstractTranslationRotation2D() = default; + }} #endif diff --git a/src/SceneGraph/AbstractTranslationRotation3D.h b/src/SceneGraph/AbstractTranslationRotation3D.h index 99f735d58..f2816ee24 100644 --- a/src/SceneGraph/AbstractTranslationRotation3D.h +++ b/src/SceneGraph/AbstractTranslationRotation3D.h @@ -45,7 +45,7 @@ template #endif class AbstractTranslationRotation3D: public AbstractTransformation<3, T> { public: - explicit AbstractTranslationRotation3D() = default; + explicit AbstractTranslationRotation3D(); /** * @brief Translate object @@ -109,6 +109,8 @@ class AbstractTranslationRotation3D: public AbstractTransformation<3, T> { } }; +template inline AbstractTranslationRotation3D::AbstractTranslationRotation3D() = default; + }} #endif diff --git a/src/SceneGraph/AbstractTranslationRotationScaling2D.h b/src/SceneGraph/AbstractTranslationRotationScaling2D.h index 4b9458631..8ea233cf8 100644 --- a/src/SceneGraph/AbstractTranslationRotationScaling2D.h +++ b/src/SceneGraph/AbstractTranslationRotationScaling2D.h @@ -44,7 +44,7 @@ template #endif class AbstractTranslationRotationScaling2D: public AbstractTranslationRotation2D { public: - explicit AbstractTranslationRotationScaling2D() = default; + explicit AbstractTranslationRotationScaling2D(); /** * @brief Scale object @@ -57,6 +57,8 @@ class AbstractTranslationRotationScaling2D: public AbstractTranslationRotation2D virtual AbstractTranslationRotationScaling2D* scale(const Math::Vector2& vector, TransformationType type = TransformationType::Global) = 0; }; +template inline AbstractTranslationRotationScaling2D::AbstractTranslationRotationScaling2D() = default; + }} #endif diff --git a/src/SceneGraph/AbstractTranslationRotationScaling3D.h b/src/SceneGraph/AbstractTranslationRotationScaling3D.h index 60049e776..31e6fb5f6 100644 --- a/src/SceneGraph/AbstractTranslationRotationScaling3D.h +++ b/src/SceneGraph/AbstractTranslationRotationScaling3D.h @@ -44,7 +44,7 @@ template #endif class AbstractTranslationRotationScaling3D: public AbstractTranslationRotation3D { public: - explicit AbstractTranslationRotationScaling3D() = default; + explicit AbstractTranslationRotationScaling3D(); /** * @brief Scale object @@ -57,6 +57,8 @@ class AbstractTranslationRotationScaling3D: public AbstractTranslationRotation3D virtual AbstractTranslationRotationScaling3D* scale(const Math::Vector3& vector, TransformationType type = TransformationType::Global) = 0; }; +template inline AbstractTranslationRotationScaling3D::AbstractTranslationRotationScaling3D() = default; + }} #endif diff --git a/src/SceneGraph/DualComplexTransformation.h b/src/SceneGraph/DualComplexTransformation.h index 8f96126cb..797719948 100644 --- a/src/SceneGraph/DualComplexTransformation.h +++ b/src/SceneGraph/DualComplexTransformation.h @@ -157,7 +157,7 @@ class DualComplexTransformation: public AbstractTranslationRotation2D { protected: /* Allow construction only from Object */ - inline explicit DualComplexTransformation() = default; + explicit DualComplexTransformation(); private: /* No assertions fired, for internal use */ @@ -180,6 +180,8 @@ class DualComplexTransformation: public AbstractTranslationRotation2D { Math::DualComplex _transformation; }; +template inline DualComplexTransformation::DualComplexTransformation() = default; + }} #endif diff --git a/src/SceneGraph/DualQuaternionTransformation.h b/src/SceneGraph/DualQuaternionTransformation.h index 811450d19..58bcd6c63 100644 --- a/src/SceneGraph/DualQuaternionTransformation.h +++ b/src/SceneGraph/DualQuaternionTransformation.h @@ -166,7 +166,7 @@ class DualQuaternionTransformation: public AbstractTranslationRotation3D { protected: /* Allow construction only from Object */ - inline explicit DualQuaternionTransformation() = default; + explicit DualQuaternionTransformation(); private: /* No assertions fired, for internal use */ @@ -189,6 +189,8 @@ class DualQuaternionTransformation: public AbstractTranslationRotation3D { Math::DualQuaternion _transformation; }; +template inline DualQuaternionTransformation::DualQuaternionTransformation() = default; + }} #endif diff --git a/src/SceneGraph/FeatureGroup.h b/src/SceneGraph/FeatureGroup.h index e51319b0b..fd0d18d96 100644 --- a/src/SceneGraph/FeatureGroup.h +++ b/src/SceneGraph/FeatureGroup.h @@ -51,7 +51,7 @@ class FeatureGroup { friend class AbstractGroupedFeature; public: - explicit FeatureGroup() = default; + explicit FeatureGroup(); /** * @brief Destructor @@ -118,6 +118,8 @@ class FeatureGroup { std::vector features; }; +template inline FeatureGroup::FeatureGroup() = default; + #ifndef CORRADE_GCC46_COMPATIBILITY /** @brief Base for two-dimensional object features diff --git a/src/SceneGraph/MatrixTransformation2D.h b/src/SceneGraph/MatrixTransformation2D.h index 80b1bd294..92590079a 100644 --- a/src/SceneGraph/MatrixTransformation2D.h +++ b/src/SceneGraph/MatrixTransformation2D.h @@ -159,12 +159,14 @@ class MatrixTransformation2D: public AbstractTranslationRotationScaling2D { protected: /* Allow construction only from Object */ - inline explicit MatrixTransformation2D() = default; + explicit MatrixTransformation2D(); private: Math::Matrix3 _transformation; }; +template inline MatrixTransformation2D::MatrixTransformation2D() = default; + }} #endif diff --git a/src/SceneGraph/MatrixTransformation3D.h b/src/SceneGraph/MatrixTransformation3D.h index 08a36bd77..a7742fc4a 100644 --- a/src/SceneGraph/MatrixTransformation3D.h +++ b/src/SceneGraph/MatrixTransformation3D.h @@ -187,12 +187,14 @@ class MatrixTransformation3D: public AbstractTranslationRotationScaling3D { protected: /* Allow construction only from Object */ - inline explicit MatrixTransformation3D() = default; + explicit MatrixTransformation3D(); private: Math::Matrix4 _transformation; }; +template inline MatrixTransformation3D::MatrixTransformation3D() = default; + }} #endif diff --git a/src/SceneGraph/RigidMatrixTransformation2D.h b/src/SceneGraph/RigidMatrixTransformation2D.h index 4d49c2a5b..2a9801404 100644 --- a/src/SceneGraph/RigidMatrixTransformation2D.h +++ b/src/SceneGraph/RigidMatrixTransformation2D.h @@ -176,7 +176,7 @@ class RigidMatrixTransformation2D: public AbstractTranslationRotation2D { protected: /* Allow construction only from Object */ - inline explicit RigidMatrixTransformation2D() = default; + explicit RigidMatrixTransformation2D(); private: /* No assertions fired, for internal use */ @@ -199,6 +199,8 @@ class RigidMatrixTransformation2D: public AbstractTranslationRotation2D { Math::Matrix3 _transformation; }; +template inline RigidMatrixTransformation2D::RigidMatrixTransformation2D() = default; + }} #endif diff --git a/src/SceneGraph/RigidMatrixTransformation3D.h b/src/SceneGraph/RigidMatrixTransformation3D.h index 9757b2271..563127511 100644 --- a/src/SceneGraph/RigidMatrixTransformation3D.h +++ b/src/SceneGraph/RigidMatrixTransformation3D.h @@ -209,7 +209,7 @@ class RigidMatrixTransformation3D: public AbstractTranslationRotation3D { protected: /* Allow construction only from Object */ - inline explicit RigidMatrixTransformation3D() = default; + explicit RigidMatrixTransformation3D(); private: /* No assertions fired, for internal use */ @@ -232,6 +232,8 @@ class RigidMatrixTransformation3D: public AbstractTranslationRotation3D { Math::Matrix4 _transformation; }; +template inline RigidMatrixTransformation3D::RigidMatrixTransformation3D() = default; + }} #endif diff --git a/src/SceneGraph/Scene.h b/src/SceneGraph/Scene.h index 2ba3a552e..d27822e27 100644 --- a/src/SceneGraph/Scene.h +++ b/src/SceneGraph/Scene.h @@ -40,11 +40,13 @@ See @ref scenegraph for introduction. */ template class Scene: public Object { public: - explicit Scene() = default; + explicit Scene(); inline bool isScene() const { return true; } }; +template inline Scene::Scene() = default; + }} #endif