Fix Mac OS X compilation 21/16721/2
Vincent COUVERT [Mon, 22 Jun 2015 11:50:11 +0000 (13:50 +0200)]
Change-Id: Ib6ba908b00c1841fdb8988b0b1004420e68fd6e7

scilab/modules/ast/includes/types/int.hxx
scilab/modules/ast/src/cpp/types/int.cpp

index fa45eaf..a1f1266 100644 (file)
@@ -23,6 +23,7 @@
 #include "internal.hxx"
 #include "types_transposition.hxx"
 #include "configvariable.hxx"
+#include "type_traits.hxx"
 
 #include <sstream>
 #include <string>
@@ -101,9 +102,18 @@ public :
         return true;
     }
 
-    bool neg(InternalType *& out);
+    bool neg(InternalType *& out)
+    {
+        out = new Int<T>(this->getDims(), this->getDimsArray());
+        type_traits::bin_neg<T, T>(this->m_iSize, this->m_pRealData, static_cast<Int<T> *>(out)->get());
 
-    virtual bool transpose(InternalType *& out);
+        return true;
+    }
+
+    virtual bool transpose(InternalType *& out)
+    {
+        return type_traits::transpose(*this, out);
+    }
 
     bool operator==(const InternalType& it)
     {
@@ -675,6 +685,7 @@ typedef Int<unsigned short> UInt16;
 typedef Int<unsigned int> UInt32;
 typedef Int<unsigned long long> UInt64;
 
+#ifdef _MSC_VER
 template class Int<char>;
 template class Int<unsigned char>;
 template class Int<short>;
@@ -683,6 +694,7 @@ template class Int<int>;
 template class Int<unsigned int>;
 template class Int<long long>;
 template class Int<unsigned long long>;
+#endif
 }
 
 
index 6701f02..e98c9b8 100644 (file)
 */
 
 #include "int.hxx"
-#include "type_traits.hxx"
 
 namespace types
 {
-template <class T>
-bool Int<T>::neg(InternalType *& out)
-{
-    out = new Int<T>(this->getDims(), this->getDimsArray());
-    type_traits::bin_neg<T, T>(this->m_iSize, this->m_pRealData, static_cast<Int<T> *>(out)->get());
-
-    return true;
-}
-
-template <class T>
-bool Int<T>::transpose(InternalType *& out)
-{
-    return type_traits::transpose(*this, out);
-}
-
 #ifdef _MSC_VER
 template class ArrayOf<char>;
 template class ArrayOf<unsigned char>;