Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А как быть с нормальными именами которые в комментах?
Кстати, в mql препроцессоре ошибка, видимо.
раскрывается в 'i nt ll;' и выдаёт ошибку:
'i nt' - undeclared identifier t_t_t.mq4 50 1
По поводу комментариев в перечислении - по идее, они должны дёргаться до Си препроцессора. Поэтому даже если бы впихнуть комментарий удалось, то вряд ли бы он имел эффект. По-хорошему, нужно менять синтаксис (на _cmnt_, наример) и менять последовательность вызова Си препроцессора с препроцессором, который выдёргивает комменты. Перспективы таких реформ маловероятны, думаю ))
Кстати, в mql препроцессоре ошибка, видимо.
раскрывается в 'i nt ll;' и выдаёт ошибку:
Динамический ENUM - для внутреннего пользования, в окне настроек такие не показывают. Нормальные имена / комменты не оч нужны
Прошлый метод требовал написания заготовок вручную под enum и функцию возвращающую массив значений. Решил разобраться и написать так, чтобы необходимость в этом отпала. Правда это нельзя скомпилировать на mql, отсутствуют макросы с переменным числом аргументов, но теоретически могут появиться. В общем получилось вот что:
Выхлоп printf:
----enum1-----
1
3
65
90
----enum2-----
100
-3
21
----enum3-----
871
213
226
// Сгенерированный код для emum1
// enum enum1{
// q = 1,
// e = 3,
// t = 65,
// z = 90,
// };
// unsigned get_enum1_array(int *ar){
// int temp[] = { q, e, t, z, };
// if(ar != NULL)
// for(unsigned i = 0; i < sizeof(temp) / sizeof(int); ++i){
// ar[i] = temp[i]; }
// return sizeof(temp) / sizeof(int);
// };
Статья на эту тему http://jhnet.co.uk/articles/cpp_magic. Вообще, магии многовато, конечно. Но техника может сгодиться для широкого круга задач относящихся к препроцессорной кодогенерации.
Я с интересом читаю ветку, все очень круто с макросами.
Только неясно, а зачем нужны эти танцы с enum? Можно привести практический пример?
Про ТФ ясно, а еще?
Правда это нельзя скомпилировать на mql, отсутствуют макросы с переменным числом аргументов, но теоретически могут появиться.
Ну вот это ключевой момент. В MQL5 макросы мало того, что с фиксированным числом аргументов, так ещё и это число ограничено 8. Так что удастся сделать enum всего для 3 значений.
А насчёт теоретического появления, наверно быстрей появится штатная функция для парсинга enum. Разработчики уже обещали родить что-нибудь.
Ну вот это ключевой момент. В MQL5 макросы мало того, что с фиксированным числом аргументов, так ещё и это число ограничено 8. Так что удастся сделать enum всего для 3 значений.
А насчёт теоретического появления, наверно быстрей появится штатная функция для парсинга enum. Разработчики уже обещали родить что-нибудь.
Используйте ранее предложенный способ перебора значений с использованием массива.
Итератора для перебора значений энумератора не планируется.
Используйте ранее предложенный способ перебора значений с использованием массива.