lawrence_danna added a comment.

In D68188#1691129 <https://reviews.llvm.org/D68188#1691129>, @labath wrote:

> Hmm... I like your solution of the typemap problem, but this CRTP class seems 
> to be way more complicated than needed. There shouldn't be any need for CRTP 
> as we already have regular dynamic dispatch via virtual methods. Also, I 
> don't think the forwarding should be needed if you're going the template 
> route. How about something like this instead?
>
>   template<typename Base>
>   class OwningPythonFile : public Base {
>     Status Close() { /* close magic here*/; }
>     // no need to forward anything -- inheritance handles that
>   };
>  
>   class TextPythonFile: public OwningPythonFile<File> {
>     // override methods as usual
>   };
>   // same for BinaryPythonFile
>
>
> Then depending on what you need, you create either a NativeFile, 
> OwningPythonFile<NativeFile>, or a Text/BinaryPythonFile. How does that sound?


Next step is add type maps to convert these things back to python.  Without the 
CRTP it can’t just check for a single OwnedPythonfile base class — it’ll have 
to check for all three.  Is that worse than using CRTP?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D68188/new/

https://reviews.llvm.org/D68188



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to