Browse Source

GCC 4.4 compatibility: can't default move constructor.

Not sure why, similar issue to defaulted move assignment in GCC 4.5.
Vladimír Vondruš 13 years ago
parent
commit
e7f81160ac
  1. 6
      src/Trade/MeshData2D.cpp
  2. 6
      src/Trade/MeshData3D.cpp

6
src/Trade/MeshData2D.cpp

@ -30,7 +30,13 @@ namespace Magnum { namespace Trade {
MeshData2D::MeshData2D(Mesh::Primitive primitive, std::vector<UnsignedInt>* indices, std::vector<std::vector<Vector2>*> positions, std::vector<std::vector<Vector2>*> textureCoords2D): _primitive(primitive), _indices(indices), _positions(std::move(positions)), _textureCoords2D(std::move(textureCoords2D)) {}
#ifndef CORRADE_GCC44_COMPATIBILITY
MeshData2D::MeshData2D(MeshData2D&&) = default;
#else
MeshData2D::MeshData2D(MeshData2D&& other): _primitive(other._primitive), _indices(other._indices), _positions(std::move(other._positions)), _textureCoords2D(std::move(other._textureCoords2D)) {
other._indices = nullptr;
}
#endif
#ifndef CORRADE_GCC45_COMPATIBILITY
MeshData2D& MeshData2D::operator=(MeshData2D&&) = default;

6
src/Trade/MeshData3D.cpp

@ -30,7 +30,13 @@ namespace Magnum { namespace Trade {
MeshData3D::MeshData3D(Mesh::Primitive primitive, std::vector<UnsignedInt>* indices, std::vector<std::vector<Vector3>*> positions, std::vector<std::vector<Vector3>*> normals, std::vector<std::vector<Vector2>*> textureCoords2D): _primitive(primitive), _indices(indices), _positions(std::move(positions)), _normals(std::move(normals)), _textureCoords2D(std::move(textureCoords2D)) {}
#ifndef CORRADE_GCC44_COMPATIBILITY
MeshData3D::MeshData3D(MeshData3D&&) = default;
#else
MeshData3D::MeshData3D(MeshData3D&& other): _primitive(other._primitive), _indices(other._indices), _positions(std::move(other._positions)), _normals(std::move(other._normals)), _textureCoords2D(std::move(other._textureCoords2D)) {
other._indices = nullptr;
}
#endif
#ifndef CORRADE_GCC45_COMPATIBILITY
MeshData3D& MeshData3D::operator=(MeshData3D&&) = default;

Loading…
Cancel
Save