Ограничения typedef? - страница 2

 
Alexey Volchanskiy:

А потом идет приписка про указатели на функции. Значит надо не путать людей а написать четко - В языке MQL5 с помощью typedef можно создавать исключительно указатели на функции и более ничего.

Кто его знает, что будет через год - язык не стоит на месте

 

Почему так?

void OnStart()
  {
   typedef int (*TFunc)(int,int);

   TFunc ff[2];
   ff[0]=Plus;
   ff[1]=Minus;

   TFunc f3=ff[1];//Minus

   Print(f3(6,2));//Компилируется
   Print(ff[1](6,2));//Не компилируется.Попытка вызвать функцию из массива
  }

int Plus(int i1,int i2)
  {
   return i1+i2;
  }

int Minus(int i1,int i2)
  {
   return i1-i2;
  }
 
Aliaksandr Hryshyn:

Почему так?

Это древнее ограничение языка. Разработчики в курсе изначально.

 

Не вникая в детали, что и как сделать, чтобы можно было  запустить пример из справочника? 

https://www.mql5.com/ru/docs/basis/types/typedef

//+------------------------------------------------------------------+
//|                                                Panel_Buttons.mq5 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

.... 

Документация по MQL5: Основы языка / Типы данных / Пользовательские типы
Документация по MQL5: Основы языка / Типы данных / Пользовательские типы
  • www.mql5.com
Пользовательские типы - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5