[llvm] [Support] Extend ExtensibleRTTI utility to support basic multiple inheritance. (PR #112643)

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 17 09:35:21 PDT 2024


================
@@ -110,21 +106,36 @@ class RTTIRoot {
 ///   static char ID;
 /// };
 ///
-template <typename ThisT, typename ParentT>
-class RTTIExtends : public ParentT {
+template <typename ThisT, typename... ParentTs>
+class RTTIExtends : public ParentTs... {
 public:
   // Inherit constructors from ParentT.
-  using ParentT::ParentT;
+  using ParentTs::ParentTs...;
----------------
dwblaikie wrote:

Does this still apply - I guess it only works if you want to call one of the base ctors and all the other bases support default construction?

Probably OK as a first step - but maybe needs a FIXME to add something like std::pair's piecewise construct (though interesting that tuple doesn't have that... )

https://github.com/llvm/llvm-project/pull/112643


More information about the llvm-commits mailing list