Thanks Araq. I will try that this afternoon, but I think I tried and it failed 
for some reason. In any case, I will probably hide completely needing to do so.

I continue with the doubt about how to properly wrap:
    
    
    template <class T2>
        static typename opencascade::std::enable_if<is_base_but_not_same<T2, 
T>::value, handle>::type
          DownCast (const handle<T2>& theObject)
        {
          return handle (dynamic_cast<T*>(const_cast<T2*>(theObject.get())));
        }
    
    
    Run

given that later is used like this:
    
    
    aPnt3 = Handle(Geom_CartesianPoint)::DownCast (aPnt1);
    
    
    Run

and why the following is producing the `cannot instantiate 'T2'` error:
    
    
    proc downcast*[T; T2](this: Handle[T] ): Handle[T2] {.cdecl, importcpp: 
"Handle('0)::Downcast(@)".}
    
    
    Run

Reply via email to