Ошибки, баги, вопросы - страница 1852

 
fxsaber:
Да.

Сделайте сами на уровне прикладной программы, покажите - и мы вместе попросим Метаквотов отрихтовать язык. 
 
Комбинатор:
добавьте явное приведение типа внутри круглых скобок.
Этого сделать нельзя.
 
Алексей Тарабанов:
Сделайте сами на уровне прикладной программы, покажите - и мы вместе попросим Метаквотов отрихтовать язык. 
Не понимаю этого потока.
 
fxsaber:
Не понимаю этого потока.

Какого потока?
 
fxsaber:
Этого сделать нельзя.

Что нельзя? Вот так записать?

Struct[(int)0]

 
Алексей Тарабанов:

Какого потока?
речевого
 
Комбинатор:

Что нельзя? Вот так записать?

Struct[(int)0]

Да, так записать нельзя. А тем более - Struct[(MqlTick)0]


Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 1570: Улучшение витрины Маркета и расширение шаблонных функций в MQL5

MetaQuotes Software Corp., 2017.03.22 16:31

  1. MQL5: Добавлена возможность явной специализации шаблонных функций. Для этого перед списком параметров вызова необходимо указать параметры типизации:
    template<typename T>
    T Func() { return (T)0; }
      
      
    void OnInit()
      {
       Func<double>();   // явная специализация шаблонной функции
      }
    Таким образом, специализация происходит не через параметры вызова, а прямым указанием типов.
 
С - классный язык программирования. Но, многие программируют, зажмурившись(:
 

Таким образом, специализация происходит не через параметры вызова, а прямым указанием типов.

Типов чего, сударь? Какой тип у структуры, которую Вы насилуете? 

 
Алексей Тарабанов:

Какой тип у структуры, которую Вы насилуете? 

struct STRUCT
{
  template <typename T>
  void operator []( int )
  {
    Print(__FUNCSIG__);
  }
};

void OnStart()
{
  STRUCT Struct;
  
  Struct.operator[]<int>(0);
  Struct.operator[]<MqlTick>(0);
}

Результат
void STRUCT::operator[]<int>(int)
void STRUCT::operator[]<MqlTick>(int)