]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkRTTI.cxx
#3212 BBTK Feature New Normal - vtk8itk4wx3-mingw64 MACOS
[bbtk.git] / kernel / src / bbtkRTTI.cxx
index be8ac465564f1cc12570025fb70fd465de60d082..bad76a8b8cf6373970f00b307af0476bddf31c70 100644 (file)
@@ -74,8 +74,16 @@ namespace bbtk
                     << " to " << TypeName(target_type) << std::endl);
 
     void* target_pointer = 0;
-#if __GNUC__ > 3 ||                                    \
-  (__GNUC__ == 3 && (__GNUC_MINOR__ > 1 ||             \
+    
+    
+    
+#if __APPLE__
+   //EED2018-08-28  Be careful  #include <typeinfo> is not complete  (CommandLine mechanisme Xcode)
+    printf("EED bbtkRTTI  run_time_up_or_down_cast   2018-08-28 Warnning !!!!  Apple cast missing  __do_upcast   ");
+       return source_pointer;
+#else    
+  #if __GNUC__ > 3 ||                                  \
+    (__GNUC__ == 3 && (__GNUC_MINOR__ > 1 ||           \
                     (__GNUC_MINOR__ == 1 &&            \
                      __GNUC_PATCHLEVEL__ > 0)))
     
@@ -86,31 +94,25 @@ namespace bbtk
 
     void* tmp = source_pointer;
     if (source_type.__do_upcast(targetTI,&tmp)) 
-      {
-       target_pointer = tmp;
-      }
-    else 
-      {
-       bbtkDebugMessage("data",7,
+    {
+         target_pointer = tmp;
+    } else {
+          bbtkDebugMessage("data",7,
                         " * upcast failed : trying dynamic down cast"
                         <<std::endl);
-       const abi::__class_type_info* sourceTI = 
-         (const abi::__class_type_info *)( &(source_type));
-       
-       
-       target_pointer = abi::__dynamic_cast(source_pointer, 
+          const abi::__class_type_info* sourceTI = (const abi::__class_type_info *)( &(source_type));
+          target_pointer = abi::__dynamic_cast(source_pointer, 
                                             sourceTI, 
                                             targetTI, 
                                             -1);   
       }
-    
-    bbtkDebugMessage("data",7," * target   = "<<target_pointer<<std::endl);
-    
-#else
+      bbtkDebugMessage("data",7," * target   = "<<target_pointer<<std::endl);
+  #else
     bbtkWarning("run_time_up_or_down_cast not impl. on Win : to do");
     // target_pointer = __RTDynamicCast(source_pointer, 0, source_type, target_type, 0);
-#endif
+  #endif
     return target_pointer;
+#endif    
     
   }