Объявление массива на языке MQL4 - не получается задать количество элементов, передавая значение переменной (и даже константы). - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот что есть
А MQL4 разве это поддерживает? Это же ООП.
Загляните в папку Include.
А MQL4 разве это поддерживает? Это же ООП.
MQL4 как язык с некоторых пор ничем не отличается от MQL5. Отличаются только API.
аналога STL нет. MT заточен на работу с массивами (таймсериями), что естественно - старайтесь реализовывать свои алгоритмы на них.
то есть свой аналог std::list std::map можно наваять но это не из области прикладного программирования..
Да вы что? Все есть, с похожим функционалом, смотрим в папку Includes\Arrays, вот его содержимое. Конечно, скромненько, но кое-что есть.
Array.mqh
ArrayChar.mqh
ArrayDouble.mqh
ArrayFloat.mqh
ArrayInt.mqh
ArrayLong.mqh
ArrayObj.mqh
ArrayShort.mqh
ArrayString.mqh
dictionary.mqh
List.mqh
Tree.mqh
TreeNode.mqh
А MQL4 разве это поддерживает? Это же ООП.
Почему-то, при объявлении массива следующим образом:
Появляется ошибка: '[' - invalid index value
Хотя, на C++ этот код нормально компилируется и работает.
Возможно ли на Mql4 количество элементов задать из переменной? Или всегда нужно использовать только числа?
Не выдержал и запустил VS 2015, думаю, неужели в новых версиях С++ ввели такие разрешения?? Как и ожидалось, такое объявление массива запрещено. Вы каким компилятором C++ пользуетесь? Я проверял на VS 2015 update 3. Номера строк 7 и 12 пронумеровал.
Не выдержал и запустил VS 2015, думаю, неужели в новых версиях С++ ввели такие разрешения?? Как и ожидалось, такое объявление массива запрещено. Вы каким компилятором C++ пользуетесь? Я проверял на VS 2015 update 3. Номера строк 7 и 12 пронумеровал.
This feature was briefly part of the C++14 working paper, but was not part of the published standard; as a result, it has been removed from the compiler.
ЗЫ:
clang тоже без проблем проглатывает подобное:
Пользуйтесь нормальными компиляторами )). GCC это умеет в качестве расширения.
Т.е. этот нормальный компилятор вот это пропустит? Вы, как я понял, им пользуетесь? Как отработает эта прога, если введёте с консоли минус 5?
Что-то вы не то говорите. Если компилятор и допускает переменную в качестве размера массива, то он хотя бы должен проверить её тип, чтобы она была целочисленной и беззнаковой, не?Т.е. этот нормальный компилятор вот это пропустит? Вы, как я понял, им пользуетесь? Как отработает прога, если введёте с консоли минус 5?
Что-то вы не то говорите. Если объявление массива и допускает переменную в качестве размера, то компилятор хотя бы должен проверить её тип, чтобы она была целочисленной и беззнаковой, не?