Почему объявление параметра функции как void дает ошибку в MQL5?

 

Я видел, что встроенная функция MQL5 имеет параметр, объявленный как void, и в соответствии с ним можно выполнять действия.

Например, вот синтаксис ArraySort в MQL5:

bool  ArraySort( 
   void&  array[]      // array for sorting 
   );

И вот где я использовал функцию и объявил свою собственную функцию, которая дает следующую ошибку:

void OnStart()
  {
   int a[][2] = {{3,1}, {5,3}, {1,3}, {7,4}, {9,2}, {2,4}, {7,2}, {0,1}, {4,1}, {16,1}};
   ArraySort(a);
   ArrayPrint(a);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ArrayOperation(void &array[])
  {

  }

Ошибка выглядит следующим образом:

'void' - illegal use of 'void' type     arraycheck.mq5  22      21

Я хочу знать, почему это происходит, и что я могу сделать, чтобы объявить некоторую функцию, имеющую синтаксис, аналогичный функциям MQL5. Пожалуйста, объясните мне, и помогите мне в этом.

 
jaffer wilson:

Я видел, что встроенная функция MQL5 имеет параметр, объявленный как void, и в соответствии с ним можно выполнять действия.

Например, вот синтаксис ArraySort в MQL5:

И вот где я использовал функцию и объявил свою собственную функцию, которая дает следующую ошибку:

Ошибка выглядит следующим образом:

Я хочу знать, почему это происходит, и что я могу сделать, чтобы объявить некоторую функцию, имеющую синтаксис, аналогичный функциям MQL5. Пожалуйста, объясните мне, и помогите мне в этом.

Здравствуйте!

Не силен в языке программирования MQL5, но сразу бросилось в глаза то, что у Вас в коде написано:

void ArrayOperation(void &array[])

А если опробовать так:

void ArrayOperation(void& array[])

С уважением, Владимир.

 
template <typename T>
void ArrayOperation(T &array[])
 
MrBrooklin:

Здравствуйте!

Не силен в языке программирования MQL5, но сразу бросилось в глаза то, что у Вас в коде написано:

А если опробовать так:

С уважением, Владимир.

Разницы никакой.

 
fxsaber :

Будет ли это применимо к любому массиву измерений?

 
Alexey Viktorov:

Разницы никакой.

Здравствуйте, Алексей!

С целью повышения знаний в языке программирования MQL5, пожалуйста, объясните, почему нет ни какой разницы между void &array и void& array?

С уважением, Владимир.

 
jaffer wilson:

Будет ли это применимо к любому массиву измерений?

Проверить быстрее, чем задать вопрос.

 
Я в вашу тему отвечу.
 
Alexey Viktorov:
Я в вашу тему отвечу.

Спасибо, Алексей!

С уважением, Владимир.

 
MrBrooklin:

Здравствуйте, Алексей!

С целью повышения знаний в языке программирования MQL5, пожалуйста, объясните, почему нет ни какой разницы между void &array и void& array?

С уважением, Владимир.

гуглится без проблем эта информация, вот нашел http://www.c-cpp.ru/books/operatory-ukazaniya-i

для унарного оператора параметром будет правая часть выражения, пробелы/табуляция/перенос строки не воспринимаются компилятором как разделитель для данной операции

 
Igor Makanu:

гуглится без проблем эта информация, вот нашел http://www.c-cpp.ru/books/operatory-ukazaniya-i

для унарного оператора параметром будет правая часть выражения, пробелы/табуляция/перенос строки не воспринимаются компилятором как разделитель для данной операции

Здравствуйте, Игорь! Спасибо за подсказку!

С уважением, Владимир.

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