Почему в MQL5 запрещено использование классов без создания их экземпляров на статическом уровне?

 

В MQL5 есть ключевое слово

static 

Это вроде бы должно подразумевать вызов методов без создания экземпляров самого класса. Допустим имеем класс TOrders:

 

static class TOrders
{
public:
int GetOrdersTotal()const;
};

int TOrders::GetOrdersTotal() const
{
return(OrdersTotal());
}

 

Теперь вызываем функцию прямо из класса, без создания экземпляра:

TOrders me; 

void OnTick()
{
   
  TOrders.GetOrderTotal(); <-- А вот так почему-то нет.
  me.GetOrdersTotal(); <-- Так можно
}

 Странно, ведь TOrders объявлен как статический класс. Явное создание экземляра при этом требоваться не должно. Вообще эта штука довольно удобная, более половины всех вспомогательных классов могли бы быть статическими. Явное создание экземпляров в них совершенно излишне.
Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5
 
К сожалению, static для методов и членов класса пока не поддерживается компилятором. Вопрос по его введению открыт и пока его рассмотрение отложено.

Причина обращения: