diff --git a/src/Magnum/AbstractFramebuffer.h b/src/Magnum/AbstractFramebuffer.h index 3db2b374d..3d53f85e3 100644 --- a/src/Magnum/AbstractFramebuffer.h +++ b/src/Magnum/AbstractFramebuffer.h @@ -184,7 +184,8 @@ If @extension{ARB,robustness} is available, @ref read() operations are protected from buffer overflow. */ class MAGNUM_EXPORT AbstractFramebuffer { - friend Implementation::FramebufferState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::FramebufferState; public: /** @todo `GL_IMPLEMENTATION_COLOR_READ_FORMAT`, `GL_IMPLEMENTATION_COLOR_READ_TYPE`, seems to be depending on currently bound FB (aargh) (@extension{ARB,ES2_compatibility}). */ diff --git a/src/Magnum/AbstractObject.h b/src/Magnum/AbstractObject.h index 74317b57e..4ef1529e8 100644 --- a/src/Magnum/AbstractObject.h +++ b/src/Magnum/AbstractObject.h @@ -44,7 +44,8 @@ namespace Implementation { struct DebugState; } @brief Base for all OpenGL objects */ class MAGNUM_EXPORT AbstractObject { - friend Implementation::DebugState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::DebugState; public: /** diff --git a/src/Magnum/AbstractQuery.h b/src/Magnum/AbstractQuery.h index c00cac466..321e0cecc 100644 --- a/src/Magnum/AbstractQuery.h +++ b/src/Magnum/AbstractQuery.h @@ -47,7 +47,8 @@ more information. @todo `QUERY_COUNTER_BITS` (not sure since when this is supported) */ class MAGNUM_EXPORT AbstractQuery: public AbstractObject { - friend Implementation::QueryState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::QueryState; public: /** @brief Copying is not allowed */ diff --git a/src/Magnum/AbstractResourceLoader.h b/src/Magnum/AbstractResourceLoader.h index c32ab37fa..bf5321697 100644 --- a/src/Magnum/AbstractResourceLoader.h +++ b/src/Magnum/AbstractResourceLoader.h @@ -101,7 +101,8 @@ Resource myMesh = manager->get("my-mesh"); buffers), should that be allowed? */ template class AbstractResourceLoader { - friend Implementation::ResourceManagerData; + /* GCC 4.6 needs the class keyword */ + friend class Implementation::ResourceManagerData; public: explicit AbstractResourceLoader(): manager(nullptr), _requestedCount(0), _loadedCount(0), _notFoundCount(0) {} diff --git a/src/Magnum/AbstractShaderProgram.h b/src/Magnum/AbstractShaderProgram.h index 4782e361c..cd38d6cf5 100644 --- a/src/Magnum/AbstractShaderProgram.h +++ b/src/Magnum/AbstractShaderProgram.h @@ -392,10 +392,11 @@ comes in handy. @todo `GL_NUM_{PROGRAM,SHADER}_BINARY_FORMATS` + `GL_{PROGRAM,SHADER}_BINARY_FORMATS` (vector), (@extension{ARB,ES2_compatibility}) */ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject { - friend Mesh; - friend MeshView; - friend TransformFeedback; - friend Implementation::ShaderProgramState; + /* GCC 4.6 needs the class/struct keyword */ + friend class Mesh; + friend class MeshView; + friend class TransformFeedback; + friend struct Implementation::ShaderProgramState; public: #ifndef MAGNUM_TARGET_GLES2 diff --git a/src/Magnum/AbstractTexture.h b/src/Magnum/AbstractTexture.h index b7fbc3d03..55bd966fd 100644 --- a/src/Magnum/AbstractTexture.h +++ b/src/Magnum/AbstractTexture.h @@ -144,8 +144,9 @@ functions do nothing. @todo Query for immutable levels (@extension{ARB,ES3_compatibility}) */ class MAGNUM_EXPORT AbstractTexture: public AbstractObject { - friend Implementation::TextureState; - friend CubeMapTexture; + /* GCC 4.6 needs the class/struct keyword */ + friend struct Implementation::TextureState; + friend class CubeMapTexture; public: #ifdef MAGNUM_BUILD_DEPRECATED diff --git a/src/Magnum/Buffer.h b/src/Magnum/Buffer.h index fc0afa13f..2a993e8c4 100644 --- a/src/Magnum/Buffer.h +++ b/src/Magnum/Buffer.h @@ -214,7 +214,8 @@ by OpenGL in order to preserve the data. If running on OpenGL ES or extension functions do nothing. */ class MAGNUM_EXPORT Buffer: public AbstractObject { - friend Implementation::BufferState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::BufferState; public: /** diff --git a/src/Magnum/BufferTexture.h b/src/Magnum/BufferTexture.h index e8ea149c3..5e2aa789f 100644 --- a/src/Magnum/BufferTexture.h +++ b/src/Magnum/BufferTexture.h @@ -200,7 +200,8 @@ and respective function documentation for more information. @requires_gl Texture buffers are not available in OpenGL ES. */ class MAGNUM_EXPORT BufferTexture: public AbstractTexture { - friend Implementation::TextureState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::TextureState; public: /** diff --git a/src/Magnum/Context.h b/src/Magnum/Context.h index 31cb9fb1b..542ff61f8 100644 --- a/src/Magnum/Context.h +++ b/src/Magnum/Context.h @@ -60,7 +60,8 @@ See also @ref Extensions namespace, which contain compile-time information about OpenGL extensions. */ class MAGNUM_EXPORT Extension { - friend Context; + /* GCC 4.6 needs the class keyword */ + friend class Context; public: /** @brief All extensions for given OpenGL version */ @@ -98,7 +99,8 @@ using @ref Platform::Context subclass, see @ref platform documentation for more information. */ class MAGNUM_EXPORT Context { - friend Platform::Context; + /* GCC 4.6 needs the class keyword */ + friend class Platform::Context; public: /** diff --git a/src/Magnum/CubeMapTexture.h b/src/Magnum/CubeMapTexture.h index 3f6104936..c326a732d 100644 --- a/src/Magnum/CubeMapTexture.h +++ b/src/Magnum/CubeMapTexture.h @@ -80,7 +80,8 @@ which intersects one of the six sides of the cube map. See @ref MultisampleTexture */ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture { - friend Implementation::TextureState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::TextureState; public: /** @brief Cube map coordinate */ diff --git a/src/Magnum/DebugOutput.h b/src/Magnum/DebugOutput.h index 2b34c2f64..a3b3e000c 100644 --- a/src/Magnum/DebugOutput.h +++ b/src/Magnum/DebugOutput.h @@ -120,7 +120,8 @@ objects with labels. See @ref AbstractQuery::setLabel(), @ref TransformFeedback::setLabel() for more information. */ class MAGNUM_EXPORT DebugOutput { - friend Implementation::DebugState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::DebugState; public: /** @@ -455,7 +456,8 @@ result in any allocations and thus won't have any negative performance effects. @see @ref DebugGroup */ class MAGNUM_EXPORT DebugMessage { - friend Implementation::DebugState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::DebugState; public: /** @@ -762,7 +764,8 @@ result in any allocations and thus won't have any negative performance effects. @see @ref DebugMessage */ class MAGNUM_EXPORT DebugGroup { - friend Implementation::DebugState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::DebugState; public: /** diff --git a/src/Magnum/DefaultFramebuffer.h b/src/Magnum/DefaultFramebuffer.h index 36deb73c0..c92e22c35 100644 --- a/src/Magnum/DefaultFramebuffer.h +++ b/src/Magnum/DefaultFramebuffer.h @@ -80,7 +80,8 @@ use DSA to avoid unnecessary calls to @fn_gl{BindFramebuffer}. See their respective documentation for more information. */ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer { - friend Context; + /* GCC 4.6 needs the class keyword */ + friend class Context; public: /** diff --git a/src/Magnum/Framebuffer.h b/src/Magnum/Framebuffer.h index 396ed0f3a..c05dc337e 100644 --- a/src/Magnum/Framebuffer.h +++ b/src/Magnum/Framebuffer.h @@ -105,7 +105,8 @@ information. @todo `MAX_COLOR_ATTACHMENTS` */ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObject { - friend Implementation::FramebufferState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::FramebufferState; public: /** @@ -116,7 +117,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje * @ref attachCubeMapTexture(), @ref attachTexture3D() */ class ColorAttachment { - friend Framebuffer; + /* GCC 4.6 needs the class keyword */ + friend class Framebuffer; public: /** diff --git a/src/Magnum/Mesh.h b/src/Magnum/Mesh.h index d311a060a..e87ecdfc2 100644 --- a/src/Magnum/Mesh.h +++ b/src/Magnum/Mesh.h @@ -340,8 +340,9 @@ drawing commands are used on desktop OpenGL and OpenGL ES 3.0. See also @ref draw() for more information. */ class MAGNUM_EXPORT Mesh: public AbstractObject { - friend MeshView; - friend Implementation::MeshState; + /* GCC 4.6 needs the class/struct keyword */ + friend class MeshView; + friend struct Implementation::MeshState; public: /** diff --git a/src/Magnum/MeshView.h b/src/Magnum/MeshView.h index 64c6dcd6b..c172b1c65 100644 --- a/src/Magnum/MeshView.h +++ b/src/Magnum/MeshView.h @@ -64,7 +64,8 @@ You must ensure that the original mesh remains available for whole view lifetime. */ class MAGNUM_EXPORT MeshView { - friend Implementation::MeshState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::MeshState; public: /** diff --git a/src/Magnum/Platform/AbstractXApplication.h b/src/Magnum/Platform/AbstractXApplication.h index a185f4ede..9fd97b749 100644 --- a/src/Magnum/Platform/AbstractXApplication.h +++ b/src/Magnum/Platform/AbstractXApplication.h @@ -354,7 +354,8 @@ CORRADE_ENUMSET_OPERATORS(AbstractXApplication::InputEvent::Buttons) @see @ref keyPressEvent(), @ref keyReleaseEvent() */ class AbstractXApplication::KeyEvent: public AbstractXApplication::InputEvent { - friend AbstractXApplication; + /* GCC 4.6 needs the class keyword */ + friend class AbstractXApplication; public: /** @@ -454,7 +455,8 @@ class AbstractXApplication::KeyEvent: public AbstractXApplication::InputEvent { @see @ref MouseMoveEvent, @ref mousePressEvent(), @ref mouseReleaseEvent() */ class AbstractXApplication::MouseEvent: public AbstractXApplication::InputEvent { - friend AbstractXApplication; + /* GCC 4.6 needs the class keyword */ + friend class AbstractXApplication; public: /** @@ -489,7 +491,8 @@ class AbstractXApplication::MouseEvent: public AbstractXApplication::InputEvent @see @ref MouseEvent, @ref mouseMoveEvent() */ class AbstractXApplication::MouseMoveEvent: public AbstractXApplication::InputEvent { - friend AbstractXApplication; + /* GCC 4.6 needs the class keyword */ + friend class AbstractXApplication; public: /** @brief Position */ diff --git a/src/Magnum/Platform/GlutApplication.h b/src/Magnum/Platform/GlutApplication.h index 9b9d60ec2..fa8546aff 100644 --- a/src/Magnum/Platform/GlutApplication.h +++ b/src/Magnum/Platform/GlutApplication.h @@ -447,7 +447,8 @@ inline GlutApplication::InputEvent::~InputEvent() = default; @see @ref keyPressEvent() */ class GlutApplication::KeyEvent: public GlutApplication::InputEvent { - friend GlutApplication; + /* GCC 4.6 needs the class keyword */ + friend class GlutApplication; public: /** @@ -546,7 +547,8 @@ class GlutApplication::KeyEvent: public GlutApplication::InputEvent { @see @ref MouseMoveEvent, @ref mousePressEvent(), @ref mouseReleaseEvent() */ class GlutApplication::MouseEvent: public GlutApplication::InputEvent { - friend GlutApplication; + /* GCC 4.6 needs the class keyword */ + friend class GlutApplication; public: /** @@ -581,7 +583,8 @@ class GlutApplication::MouseEvent: public GlutApplication::InputEvent { @see @ref MouseEvent, @ref mouseMoveEvent() */ class GlutApplication::MouseMoveEvent: public GlutApplication::InputEvent { - friend GlutApplication; + /* GCC 4.6 needs the class keyword */ + friend class GlutApplication; public: /** diff --git a/src/Magnum/Platform/Screen.h b/src/Magnum/Platform/Screen.h index 51163cb20..3d7c27b0b 100644 --- a/src/Magnum/Platform/Screen.h +++ b/src/Magnum/Platform/Screen.h @@ -67,9 +67,10 @@ The following specialization are explicitly compiled into each particular - @ref XEglApplication "BasicScreen" */ template class BasicScreen: private Containers::LinkedListItem, BasicScreenedApplication> { - friend Containers::LinkedListItem, BasicScreenedApplication>; - friend Containers::LinkedList>; - friend BasicScreenedApplication; + /* GCC 4.6 needs the class keyword */ + friend class Containers::LinkedListItem, BasicScreenedApplication>; + friend class Containers::LinkedList>; + friend class BasicScreenedApplication; public: #ifdef DOXYGEN_GENERATING_OUTPUT diff --git a/src/Magnum/Platform/ScreenedApplication.h b/src/Magnum/Platform/ScreenedApplication.h index e0e315218..84720947e 100644 --- a/src/Magnum/Platform/ScreenedApplication.h +++ b/src/Magnum/Platform/ScreenedApplication.h @@ -95,9 +95,10 @@ The following specialization are explicitly compiled into each particular - @ref XEglApplication "BasicScreenedApplication" */ template class BasicScreenedApplication: public Application, private Containers::LinkedList> { - friend Containers::LinkedList>; - friend Containers::LinkedListItem, BasicScreenedApplication>; - friend BasicScreen; + /* GCC 4.6 needs the class keyword */ + friend class Containers::LinkedList>; + friend class Containers::LinkedListItem, BasicScreenedApplication>; + friend class BasicScreen; public: /** diff --git a/src/Magnum/Platform/Sdl2Application.h b/src/Magnum/Platform/Sdl2Application.h index c66ac1b0f..832b3feaa 100644 --- a/src/Magnum/Platform/Sdl2Application.h +++ b/src/Magnum/Platform/Sdl2Application.h @@ -730,7 +730,8 @@ inline Sdl2Application::InputEvent::~InputEvent() = default; @see @ref keyPressEvent(), @ref keyReleaseEvent() */ class Sdl2Application::KeyEvent: public Sdl2Application::InputEvent { - friend Sdl2Application; + /* GCC 4.6 needs the class keyword */ + friend class Sdl2Application; public: /** @@ -830,7 +831,8 @@ class Sdl2Application::KeyEvent: public Sdl2Application::InputEvent { @see @ref MouseMoveEvent, @ref mousePressEvent(), @ref mouseReleaseEvent() */ class Sdl2Application::MouseEvent: public Sdl2Application::InputEvent { - friend Sdl2Application; + /* GCC 4.6 needs the class keyword */ + friend class Sdl2Application; public: /** @@ -874,7 +876,8 @@ class Sdl2Application::MouseEvent: public Sdl2Application::InputEvent { @see @ref MouseEvent, @ref mouseMoveEvent() */ class Sdl2Application::MouseMoveEvent: public Sdl2Application::InputEvent { - friend Sdl2Application; + /* GCC 4.6 needs the class keyword */ + friend class Sdl2Application; public: /** diff --git a/src/Magnum/Renderbuffer.h b/src/Magnum/Renderbuffer.h index c3c7ab930..8fbb5750f 100644 --- a/src/Magnum/Renderbuffer.h +++ b/src/Magnum/Renderbuffer.h @@ -64,7 +64,8 @@ information. @requires_gl30 Extension @extension{ARB,framebuffer_object} */ class MAGNUM_EXPORT Renderbuffer: public AbstractObject { - friend Implementation::FramebufferState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::FramebufferState; public: /** diff --git a/src/Magnum/Renderer.h b/src/Magnum/Renderer.h index dc09ab92b..b3c5fade2 100644 --- a/src/Magnum/Renderer.h +++ b/src/Magnum/Renderer.h @@ -48,8 +48,9 @@ namespace Implementation { struct RendererState; } @todo `GL_MAX_CLIP_DISTANCES`... */ class MAGNUM_EXPORT Renderer { - friend Context; - friend Implementation::RendererState; + /* GCC 4.6 needs the class/struct keyword */ + friend class Context; + friend struct Implementation::RendererState; public: Renderer() = delete; diff --git a/src/Magnum/Resource.h b/src/Magnum/Resource.h index ad05e5755..d24f5f0e0 100644 --- a/src/Magnum/Resource.h +++ b/src/Magnum/Resource.h @@ -122,7 +122,8 @@ template template #endif class Resource { - friend Implementation::ResourceManagerData; + /* GCC 4.6 needs the class keyword */ + friend class Implementation::ResourceManagerData; public: /** diff --git a/src/Magnum/ResourceManager.h b/src/Magnum/ResourceManager.h index db2e42d05..65f91c63c 100644 --- a/src/Magnum/ResourceManager.h +++ b/src/Magnum/ResourceManager.h @@ -96,7 +96,8 @@ namespace Implementation { template class ResourceManagerData { template friend class Magnum::Resource; - friend AbstractResourceLoader; + /* GCC 4.6 needs the class keyword */ + friend class AbstractResourceLoader; public: ResourceManagerData(const ResourceManagerData&) = delete; diff --git a/src/Magnum/SceneGraph/AbstractFeature.h b/src/Magnum/SceneGraph/AbstractFeature.h index 289a3183e..3e144340a 100644 --- a/src/Magnum/SceneGraph/AbstractFeature.h +++ b/src/Magnum/SceneGraph/AbstractFeature.h @@ -156,8 +156,9 @@ template class AbstractFeature : private Containers::LinkedListItem, AbstractObject> #endif { - friend Containers::LinkedList>; - friend Containers::LinkedListItem, AbstractObject>; + /* GCC 4.6 needs the class keyword */ + friend class Containers::LinkedList>; + friend class Containers::LinkedListItem, AbstractObject>; template friend class Object; public: diff --git a/src/Magnum/SceneGraph/AbstractGroupedFeature.h b/src/Magnum/SceneGraph/AbstractGroupedFeature.h index 4e7ecd46a..b30af1d29 100644 --- a/src/Magnum/SceneGraph/AbstractGroupedFeature.h +++ b/src/Magnum/SceneGraph/AbstractGroupedFeature.h @@ -68,7 +68,8 @@ errors. See also @ref compilation-speedup-hpp for more information. @ref AbstractGroupedFeature3D, @ref FeatureGroup */ template class AbstractGroupedFeature: public AbstractFeature { - friend FeatureGroup; + /* GCC 4.6 needs the class keyword */ + friend class FeatureGroup; public: /** diff --git a/src/Magnum/SceneGraph/AbstractObject.h b/src/Magnum/SceneGraph/AbstractObject.h index 6608223eb..b153af0e5 100644 --- a/src/Magnum/SceneGraph/AbstractObject.h +++ b/src/Magnum/SceneGraph/AbstractObject.h @@ -89,9 +89,10 @@ template class AbstractObject : private Containers::LinkedList> #endif { - friend Containers::LinkedList>; - friend Containers::LinkedListItem, AbstractObject>; - friend AbstractFeature; + /* GCC 4.6 needs the class keyword */ + friend class Containers::LinkedList>; + friend class Containers::LinkedListItem, AbstractObject>; + friend class AbstractFeature; public: /** @brief Matrix type */ diff --git a/src/Magnum/SceneGraph/Animable.h b/src/Magnum/SceneGraph/Animable.h index c0131e792..469ac2cd4 100644 --- a/src/Magnum/SceneGraph/Animable.h +++ b/src/Magnum/SceneGraph/Animable.h @@ -145,7 +145,8 @@ errors. See also @ref compilation-speedup-hpp for more information. @ref Animable2D, @ref Animable3D, @ref AnimableGroup */ template class Animable: public AbstractGroupedFeature, T> { - friend AnimableGroup; + /* GCC 4.6 needs the class keyword */ + friend class AnimableGroup; public: /** diff --git a/src/Magnum/SceneGraph/AnimableGroup.h b/src/Magnum/SceneGraph/AnimableGroup.h index 084f5b4b8..6fe3a3591 100644 --- a/src/Magnum/SceneGraph/AnimableGroup.h +++ b/src/Magnum/SceneGraph/AnimableGroup.h @@ -42,7 +42,8 @@ See @ref Animable for more information. @ref AnimableGroup2D, @ref AnimableGroup3D */ template class AnimableGroup: public FeatureGroup, T> { - friend Animable; + /* GCC 4.6 needs the class keyword */ + friend class Animable; public: /** diff --git a/src/Magnum/SceneGraph/FeatureGroup.h b/src/Magnum/SceneGraph/FeatureGroup.h index cc3d4298c..d7696f1cc 100644 --- a/src/Magnum/SceneGraph/FeatureGroup.h +++ b/src/Magnum/SceneGraph/FeatureGroup.h @@ -62,7 +62,8 @@ See @ref AbstractGroupedFeature for more information. @ref FeatureGroup2D, @ref FeatureGroup3D */ template class FeatureGroup: public AbstractFeatureGroup { - friend AbstractGroupedFeature; + /* GCC 4.6 needs the class keyword */ + friend class AbstractGroupedFeature; public: explicit FeatureGroup(); diff --git a/src/Magnum/SceneGraph/Object.h b/src/Magnum/SceneGraph/Object.h index b31f12a3c..091d8c94f 100644 --- a/src/Magnum/SceneGraph/Object.h +++ b/src/Magnum/SceneGraph/Object.h @@ -111,8 +111,9 @@ template class Object: public AbstractObject>, private Containers::LinkedListItem, Object> #endif { - friend Containers::LinkedList>; - friend Containers::LinkedListItem, Object>; + /* GCC 4.6 needs the class keyword */ + friend class Containers::LinkedList>; + friend class Containers::LinkedListItem, Object>; public: /** @brief Matrix type */ diff --git a/src/Magnum/Shapes/Composition.h b/src/Magnum/Shapes/Composition.h index 30545f8d5..15f4f6073 100644 --- a/src/Magnum/Shapes/Composition.h +++ b/src/Magnum/Shapes/Composition.h @@ -73,7 +73,8 @@ template class MAGNUM_SHAPES_EXPORT Composition { template friend Implementation::AbstractShape& Implementation::getAbstractShape(Composition&, std::size_t); template friend const Implementation::AbstractShape& Implementation::getAbstractShape(const Composition&, std::size_t); #endif - friend Implementation::ShapeHelper>; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::ShapeHelper>; public: enum: UnsignedInt { diff --git a/src/Magnum/Shapes/Shape.h b/src/Magnum/Shapes/Shape.h index 61d722a78..d46700aa3 100644 --- a/src/Magnum/Shapes/Shape.h +++ b/src/Magnum/Shapes/Shape.h @@ -67,7 +67,8 @@ Shapes::AbstractShape3D* firstCollision = shapes.firstCollision(shape); @ref DebugTools::ShapeRenderer */ template class Shape: public AbstractShape { - friend Implementation::ShapeHelper; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::ShapeHelper; public: /** diff --git a/src/Magnum/Shapes/ShapeGroup.h b/src/Magnum/Shapes/ShapeGroup.h index fba38afe7..4ef4da6d9 100644 --- a/src/Magnum/Shapes/ShapeGroup.h +++ b/src/Magnum/Shapes/ShapeGroup.h @@ -44,7 +44,8 @@ See @ref Shape for more information. See @ref shapes for brief introduction. @see @ref scenegraph, @ref ShapeGroup2D, @ref ShapeGroup3D */ template class MAGNUM_SHAPES_EXPORT ShapeGroup: public SceneGraph::FeatureGroup, Float> { - friend AbstractShape; + /* GCC 4.6 needs the class keyword */ + friend class AbstractShape; public: /** diff --git a/src/Magnum/TransformFeedback.h b/src/Magnum/TransformFeedback.h index 7566be996..51b50ed15 100644 --- a/src/Magnum/TransformFeedback.h +++ b/src/Magnum/TransformFeedback.h @@ -61,7 +61,8 @@ documentation for more information. @todo @extension{AMD,transform_feedback3_lines_triangles}? */ class MAGNUM_EXPORT TransformFeedback: public AbstractObject { - friend Implementation::TransformFeedbackState; + /* GCC 4.6 needs the struct keyword */ + friend struct Implementation::TransformFeedbackState; public: /**