Browse Source

Trade: conditionally disable noexcept for GCC 4.9.0 in Android NDK.

It complains about singatures not matching the implicit and thus not
being defaultable. Works everywhere else, even on GCC 4.7 and 5.0, so I
don't bother.
pull/187/head^2
Vladimír Vondruš 10 years ago
parent
commit
d1ce761cce
  1. 12
      src/Magnum/Trade/MeshData2D.cpp
  2. 18
      src/Magnum/Trade/MeshData2D.h
  3. 12
      src/Magnum/Trade/MeshData3D.cpp
  4. 18
      src/Magnum/Trade/MeshData3D.h
  5. 18
      src/Magnum/Trade/MeshObjectData2D.h
  6. 18
      src/Magnum/Trade/MeshObjectData3D.h
  7. 12
      src/Magnum/Trade/ObjectData2D.cpp
  8. 18
      src/Magnum/Trade/ObjectData2D.h
  9. 12
      src/Magnum/Trade/ObjectData3D.cpp
  10. 18
      src/Magnum/Trade/ObjectData3D.h
  11. 14
      src/Magnum/Trade/SceneData.cpp
  12. 18
      src/Magnum/Trade/SceneData.h

12
src/Magnum/Trade/MeshData2D.cpp

@ -33,11 +33,19 @@ MeshData2D::MeshData2D(const MeshPrimitive primitive, std::vector<UnsignedInt> i
CORRADE_ASSERT(!_positions.empty(), "Trade::MeshData2D: no position array specified", );
}
MeshData2D::MeshData2D(MeshData2D&&) noexcept = default;
MeshData2D::MeshData2D(MeshData2D&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
MeshData2D::~MeshData2D() = default;
MeshData2D& MeshData2D::operator=(MeshData2D&&) noexcept = default;
MeshData2D& MeshData2D::operator=(MeshData2D&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
std::vector<UnsignedInt>& MeshData2D::indices() {
CORRADE_ASSERT(isIndexed(), "Trade::MeshData2D::indices(): the mesh is not indexed", _indices);

18
src/Magnum/Trade/MeshData2D.h

@ -62,7 +62,14 @@ class MAGNUM_EXPORT MeshData2D {
MeshData2D(const MeshData2D&) = delete;
/** @brief Move constructor */
MeshData2D(MeshData2D&&) noexcept;
MeshData2D(MeshData2D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
~MeshData2D();
@ -70,7 +77,14 @@ class MAGNUM_EXPORT MeshData2D {
MeshData2D& operator=(const MeshData2D&) = delete;
/** @brief Move assignment */
MeshData2D& operator=(MeshData2D&&) noexcept;
MeshData2D& operator=(MeshData2D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
/** @brief Primitive */
MeshPrimitive primitive() const { return _primitive; }

12
src/Magnum/Trade/MeshData3D.cpp

@ -33,11 +33,19 @@ MeshData3D::MeshData3D(const MeshPrimitive primitive, std::vector<UnsignedInt> i
CORRADE_ASSERT(!_positions.empty(), "Trade::MeshData3D: no position array specified", );
}
MeshData3D::MeshData3D(MeshData3D&&) noexcept = default;
MeshData3D::MeshData3D(MeshData3D&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
MeshData3D::~MeshData3D() = default;
MeshData3D& MeshData3D::operator=(MeshData3D&&) noexcept = default;
MeshData3D& MeshData3D::operator=(MeshData3D&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
std::vector<UnsignedInt>& MeshData3D::indices() {
CORRADE_ASSERT(isIndexed(), "Trade::MeshData3D::indices(): the mesh is not indexed", _indices);

18
src/Magnum/Trade/MeshData3D.h

@ -63,7 +63,14 @@ class MAGNUM_EXPORT MeshData3D {
MeshData3D(const MeshData3D&) = delete;
/** @brief Move constructor */
MeshData3D(MeshData3D&&) noexcept;
MeshData3D(MeshData3D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
~MeshData3D();
@ -71,7 +78,14 @@ class MAGNUM_EXPORT MeshData3D {
MeshData3D& operator=(const MeshData3D&) = delete;
/** @brief Move assignment */
MeshData3D& operator=(MeshData3D&&) noexcept;
MeshData3D& operator=(MeshData3D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
/** @brief Primitive */
MeshPrimitive primitive() const { return _primitive; }

18
src/Magnum/Trade/MeshObjectData2D.h

@ -57,13 +57,27 @@ class MAGNUM_EXPORT MeshObjectData2D: public ObjectData2D {
MeshObjectData2D(const MeshObjectData2D&) = delete;
/** @brief Move constructor */
MeshObjectData2D(MeshObjectData2D&&) noexcept = default;
MeshObjectData2D(MeshObjectData2D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
/** @brief Copying is not allowed */
MeshObjectData2D& operator=(const MeshObjectData2D&) = delete;
/** @brief Move assignment */
MeshObjectData2D& operator=(MeshObjectData2D&&) noexcept = default;
MeshObjectData2D& operator=(MeshObjectData2D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
/**
* @brief Material ID

18
src/Magnum/Trade/MeshObjectData3D.h

@ -57,13 +57,27 @@ class MAGNUM_EXPORT MeshObjectData3D: public ObjectData3D {
MeshObjectData3D(const MeshObjectData3D&) = delete;
/** @brief Move constructor */
MeshObjectData3D(MeshObjectData3D&&) noexcept = default;
MeshObjectData3D(MeshObjectData3D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
/** @brief Copying is not allowed */
MeshObjectData3D& operator=(const MeshObjectData3D&) = delete;
/** @brief Move assignment */
MeshObjectData3D& operator=(MeshObjectData3D&&) noexcept = default;
MeshObjectData3D& operator=(MeshObjectData3D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
/**
* @brief Material ID

12
src/Magnum/Trade/ObjectData2D.cpp

@ -31,11 +31,19 @@ ObjectData2D::ObjectData2D(std::vector<UnsignedInt> children, const Matrix3& tra
ObjectData2D::ObjectData2D(std::vector<UnsignedInt> children, const Matrix3& transformation, const void* const importerState): _children{std::move(children)}, _transformation{transformation}, _instanceType{ObjectInstanceType2D::Empty}, _instance{-1}, _importerState{importerState} {}
ObjectData2D::ObjectData2D(ObjectData2D&&) noexcept = default;
ObjectData2D::ObjectData2D(ObjectData2D&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
ObjectData2D::~ObjectData2D() = default;
ObjectData2D& ObjectData2D::operator=(ObjectData2D&&) noexcept = default;
ObjectData2D& ObjectData2D::operator=(ObjectData2D&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
#ifndef DOXYGEN_GENERATING_OUTPUT
Debug& operator<<(Debug& debug, ObjectInstanceType2D value) {

18
src/Magnum/Trade/ObjectData2D.h

@ -83,7 +83,14 @@ class MAGNUM_EXPORT ObjectData2D {
ObjectData2D(const ObjectData2D&) = delete;
/** @brief Move constructor */
ObjectData2D(ObjectData2D&&) noexcept;
ObjectData2D(ObjectData2D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
/** @brief Destructor */
virtual ~ObjectData2D();
@ -92,7 +99,14 @@ class MAGNUM_EXPORT ObjectData2D {
ObjectData2D& operator=(const ObjectData2D&) = delete;
/** @brief Move assignment */
ObjectData2D& operator=(ObjectData2D&&) noexcept;
ObjectData2D& operator=(ObjectData2D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
/** @brief Child objects */
std::vector<UnsignedInt>& children() { return _children; }

12
src/Magnum/Trade/ObjectData3D.cpp

@ -31,11 +31,19 @@ ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Matrix4& tra
ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Matrix4& transformation, const void* const importerState): _children{std::move(children)}, _transformation{transformation}, _instanceType{ObjectInstanceType3D::Empty}, _instance{-1}, _importerState{importerState} {}
ObjectData3D::ObjectData3D(ObjectData3D&&) noexcept = default;
ObjectData3D::ObjectData3D(ObjectData3D&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
ObjectData3D::~ObjectData3D() = default;
ObjectData3D& ObjectData3D::operator=(ObjectData3D&&) noexcept = default;
ObjectData3D& ObjectData3D::operator=(ObjectData3D&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
#ifndef DOXYGEN_GENERATING_OUTPUT
Debug& operator<<(Debug& debug, ObjectInstanceType3D value) {

18
src/Magnum/Trade/ObjectData3D.h

@ -84,7 +84,14 @@ class MAGNUM_EXPORT ObjectData3D {
ObjectData3D(const ObjectData3D&) = delete;
/** @brief Move constructor */
ObjectData3D(ObjectData3D&&) noexcept;
ObjectData3D(ObjectData3D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
/** @brief Destructor */
virtual ~ObjectData3D();
@ -93,7 +100,14 @@ class MAGNUM_EXPORT ObjectData3D {
ObjectData3D& operator=(const ObjectData3D&) = delete;
/** @brief Move assignment */
ObjectData3D& operator=(ObjectData3D&&) noexcept;
ObjectData3D& operator=(ObjectData3D&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
/** @brief Child objects */
std::vector<UnsignedInt>& children() { return _children; }

14
src/Magnum/Trade/SceneData.cpp

@ -29,8 +29,16 @@ namespace Magnum { namespace Trade {
SceneData::SceneData(std::vector<UnsignedInt> children2D, std::vector<UnsignedInt> children3D, const void* const importerState): _children2D{std::move(children2D)}, _children3D{std::move(children3D)}, _importerState{importerState} {}
SceneData::SceneData(SceneData&&) noexcept = default;
SceneData& SceneData::operator=(SceneData&&) noexcept = default;
SceneData::SceneData(SceneData&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
SceneData& SceneData::operator=(SceneData&&)
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
= default;
}}

18
src/Magnum/Trade/SceneData.h

@ -54,13 +54,27 @@ class MAGNUM_EXPORT SceneData {
SceneData(const SceneData&) = delete;
/** @brief Move constructor */
SceneData(SceneData&&) noexcept;
SceneData(SceneData&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
/** @brief Copying is not allowed */
SceneData& operator=(const SceneData&) = delete;
/** @brief Move assignment */
SceneData& operator=(SceneData&&) noexcept;
SceneData& operator=(SceneData&&)
/* GCC 4.9.0 (the one from Android NDK) thinks this does not match
the implicit signature so it can't be defaulted. Works on 4.7,
5.0 and everywhere else, so I don't bother. */
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409
noexcept
#endif
;
/** @brief Two-dimensional child objects */
const std::vector<UnsignedInt>& children2D() const { return _children2D; }

Loading…
Cancel
Save