ソースを参照

Fixing GCC 4.9 compilation issues

Jean-François Verdon 4 年 前
コミット
b7b3c6db7e
2 ファイル変更10 行追加0 行削除
  1. 2 0
      code/AssetLib/glTF2/glTF2Asset.inl
  2. 8 0
      include/assimp/TinyFormatter.h

+ 2 - 0
code/AssetLib/glTF2/glTF2Asset.inl

@@ -58,7 +58,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #pragma clang diagnostic ignored "-Wsign-compare"
 #elif defined(__GNUC__)
 #pragma GCC diagnostic push
+#if (__GNUC__ > 4)
 #pragma GCC diagnostic ignored "-Wbool-compare"
+#endif
 #pragma GCC diagnostic ignored "-Wsign-compare"
 #endif
 

+ 8 - 0
include/assimp/TinyFormatter.h

@@ -88,9 +88,17 @@ public:
         underlying << sin;
     }
 
+    // Same problem as the copy constructor below, but with root cause is that stream move
+    // is not permitted on older GCC versions. Small performance impact on those platforms.
+#if defined(__GNUC__) && (__GNUC__ == 4 && __GNUC_MINOR__ <= 9)
+    basic_formatter(basic_formatter&& other) {
+        underlying << (string)other;
+    }
+#else
     basic_formatter(basic_formatter&& other)
         : underlying(std::move(other.underlying)) {
     }
+#endif
 
     // The problem described here:
     // https://sourceforge.net/tracker/?func=detail&atid=1067632&aid=3358562&group_id=226462