Ошибка, это обычное дело... Надо исправлять. И мне отсюда не видать, что вы там делаете, может вы не то делаете. Должно получиться четыре разных функции с одинаковыми именами, но у параметра функции разное количество измерений массива. Это не может не сработать.
Если в этих функциях делается что-то такое особо ценное и универсальное и они будут постоянно востребованы в будущем, то можно потрудиться ради такого. К тому же это будет лучше с точки зрения быстродействия.
Наряду с переменными и функциями, массивы являются практически неотъемлемой частью любого языка программирования. Статья должна быть интересна в первую очередь новичкам, приступившим к изучению программирования на MQL5. Опытным программистам представляется хорошая возможность подытожить, обобщить и систематизировать свои знания.
Ошибка, это обычное дело... Надо исправлять. И мне отсюда не видать, что вы там делаете, может вы не то делаете. Должно получиться четыре разных функции с одинаковыми именами, но у параметра функции разное количество измерений массива. Это не может не сработать.
Позвольте мне показать вам, что я сделал.
Вот код:
voidOnStart()
{
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);
ArrayOperation(a);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+template <typename T>
void ArrayOperation(T &array[][2])
{
}
template < typename T>
void f (T & x []) {
}
template < typename T>
void f (T & x [] []) {
}
template < typename T>
void f (T & x [] [] []) {
}
template < typename T>
void f (T & x [] [] [] []) {
}
//+------------------------------------------------------------------+
Ошибка исправляется указанием конкретного размера для второго измерения (и для третьего, четвертого). Но в этом случае функция перестает быть универсальной. Вы написали:
void ArrayOperation(T &array[][2])
{
}
В эту функцию можно передать только такой массив:
int a[][2]
А с другим размером второго измерения - нет. Вот такой уже не получится:
Ошибка исправляется указанием конкретного размера для второго измерения (и для третьего, четвертого). Но в этом случае функция перестает быть универсальной. Вы написали:
В эту функцию можно передать только такой массив:
А с другим размером второго измерения - нет. Вот такой уже не получится:
Это может быть сложно. Не могли бы вы поделиться со мной работоспособным скриптом MQL4? Это очень поможет. Потому что это занимает много времени и требует большого обсуждения.
Это может быть сложно. Не могли бы вы поделиться со мной работоспособным скриптом MQL4? Это очень поможет. Потому что это занимает много времени и требует большого обсуждения.
'arraycheck.mq5' arraycheck.mq5 11'[' - invalid index value arraycheck.mq5 6519'[' - invalid index value arraycheck.mq5 7019'[' - invalid index value arraycheck.mq5 7022'[' - invalid index value arraycheck.mq5 7519'[' - invalid index value arraycheck.mq5 7522'[' - invalid index value arraycheck.mq5 7525'f' - no one of the overloads can be applied to the function call arraycheck.mq5 524
could be one of 4 function(s) arraycheck.mq5 524void f(T&[]) arraycheck.mq5 607void f(T&[][1]) arraycheck.mq5 657void f(T&[][1][1]) arraycheck.mq5 707void f(T&[][1][1][1]) arraycheck.mq5 757'f' - no one of the overloads can be applied to the function call arraycheck.mq5 554
could be one of 4 function(s) arraycheck.mq5 554void f(T&[]) arraycheck.mq5 607void f(T&[][1]) arraycheck.mq5 657void f(T&[][1][1]) arraycheck.mq5 707void f(T&[][1][1][1]) arraycheck.mq5 7578 errors, 0 warnings 91
Можете ли вы сказать мне, какую сборку вы используете? Я использую это
Это не сработало.
Ошибка:
Ошибка, это обычное дело... Надо исправлять. И мне отсюда не видать, что вы там делаете, может вы не то делаете. Должно получиться четыре разных функции с одинаковыми именами, но у параметра функции разное количество измерений массива. Это не может не сработать.
Используйте перегрузку. Максимальное количество измерений массива - 4. Значит надо написать всего четыре варианта функции:
Если в этих функциях делается что-то такое особо ценное и универсальное и они будут постоянно востребованы в будущем, то можно потрудиться ради такого. К тому же это будет лучше с точки зрения быстродействия.
Разве? А вот тут автор пишет, что:
При передаче многомерных массивов в функцию необходимо указывать размеры измерений кроме первого:
Или Вы с ним не согласны? :-)
Или может я что-то не так понял?
Разве? А вот тут автор пишет, что:
Или Вы с ним не согласны? :-)
Или может я что-то не так понял?
Не тот редактор под рукой оказался. Есть разница в 4 и 5. В 4 компилируется без указания размера измерений, а в 5 - надо указывать.
Ну и значит миссия не выполнима. Как же много граблей здесь разложено! Их что, специально здесь раскладывают?
mql4 будет поддерживать это обновление, код можно будет делать кроссплатформенным?
Нет.
Ошибка, это обычное дело... Надо исправлять. И мне отсюда не видать, что вы там делаете, может вы не то делаете. Должно получиться четыре разных функции с одинаковыми именами, но у параметра функции разное количество измерений массива. Это не может не сработать.
Позвольте мне показать вам, что я сделал.
Вот код:
Пожалуйста, дайте мне знать, чего вы не получили.
Позвольте мне показать вам, что я сделал.
Вот код:
Пожалуйста, дайте мне знать, чего вы не получили.
Ошибка исправляется указанием конкретного размера для второго измерения (и для третьего, четвертого). Но в этом случае функция перестает быть универсальной. Вы написали:
В эту функцию можно передать только такой массив:
А с другим размером второго измерения - нет. Вот такой уже не получится:
mql4 будет поддерживать это обновление, код можно будет делать кроссплатформенным?
Ошибка исправляется указанием конкретного размера для второго измерения (и для третьего, четвертого). Но в этом случае функция перестает быть универсальной. Вы написали:
В эту функцию можно передать только такой массив:
А с другим размером второго измерения - нет. Вот такой уже не получится:
Это может быть сложно. Не могли бы вы поделиться со мной работоспособным скриптом MQL4? Это очень поможет. Потому что это занимает много времени и требует большого обсуждения.
Это может быть сложно. Не могли бы вы поделиться со мной работоспособным скриптом MQL4? Это очень поможет. Потому что это занимает много времени и требует большого обсуждения.
Это ошибка, когда я пробовал ваш пример:
Можете ли вы сказать мне, какую сборку вы используете? Я использую это