Multiple interface inheritance - is this coming in the future?

 

We have interfaces in MQL but they really don't provide much value than just using an abstract base class in my opinion.

Interfaces become alive when you can inherit a class from multiple interfaces.

interface IIsStringable {
   string ToString() const;
};

interface IIsWaitable {
   bool IsReady() const;
};

class MyClass : public IIsStringable, IIsWaitable {
};

I could tag any of my classes with the IIsWaitable and allow them to be used in a wait group

class WaitGroup {
   public Add(IIsWaitable* ptr);
}

Do we know if they have any plans for this?

 
There was an intention to do it few years ago, and on the last minute they withrew. I don't know about any plans for that though, pitty it seems so easy to implement and the reward is quite large in terms of language power.
 
Amir Yacoby #: There was an intention to do it few years ago, and on the last minute they withrew. I don't know about any plans for that though, pitty it seems so easy to implement and the reward is quite large in terms of language power.

It will be very amazing, cool and very helpful to have multiple interfaces inheritance. I have to write so much redundant code to work around this limitation of MQL language. But on my opinion it's not difficult to implement multiple interfaces inheritance rather than multiple classes inheritance. I'll be very happy if this issue would appear at TODO list for MQL language improvements. 

 
ALEKSANDR SHUKALOVICH #:

It will be very amazing, cool and very helpful to have multiple interfaces inheritance. I have to write so much redundant code to work around this limitation of MQL language. But on my opinion it's not difficult to implement multiple interfaces inheritance rather than multiple classes inheritance. I'll be very happy if this issue would appear at TODO list for MQL language improvements. 

If it's "not difficult", why not coding it yourself ?

You could create a tool, library or whatever, which would allow to use multiple interface inheritance and produce standard MQL code that would compile.