Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пишу сложный индикатор, который работает с большим количеством данных, и эти данные хранятся в структуре, а структура ещё к тому же реализована в виде массива.
Можно:
Можно:
Понятно, что нужно написать функцию. А кто ее вызовет?
К примеру, есть строка:
double fValue = MyStruct.field1;
Как, не внося изменений в этот код, воспользоваться проверкой на значение?
Бывают, когда данные по ТФ не загружены.
Так прежде чем загнать в массив структуры очередной разряд нужно данные проверять. И если все устраивает то добавлять. Вроде это логичное действие.
Так прежде чем загнать в массив структуры очередной разряд нужно данные проверять. И если все устраивает то добавлять. Вроде это логичное действие.
Да, об этом я и говорил выше.
Да, об этом я и говорил выше.
Как, не внося изменений в этот код, воспользоваться проверкой на значение?
Для этого нужно знать, что программа делает в случае соответствия (например, записывает данные в буферный массив/массивы индикатора и т.д) и что она делает в случае несоответствия (пишет в лог сообщение об ошибке и останавливает процесс или, корректирует данные и передает их дальше и т.п).
Для этого нужно знать, что программа делает в случае соответствия (например, записывает данные в буферный массив/массивы индикатора и т.д) и что она делает в случае несоответствия (пишет в лог сообщение об ошибке и останавливает процесс или, корректирует данные и передает их дальше и т.п).
Допустим, в случае равенства нулю, выдать сообщение в лог и завершить выполнение. Если не равно, то просто переходим к следующей команде. Как сделать без внесения правок в код (не в код структуры, там как раз и предполагаются изменения)?
Допустим, в случае равенства нулю, выдать сообщение в лог и завершить выполнение. Если не равно, то просто переходим к следующей команде. Как сделать без внесения правок в код (не в код структуры, там как раз и предполагаются изменения)?
Всё зависит от конкретных целей. Смотря какие они, соответственно, так и будет работать программа. В код программы нужно вставить функцию. А в структуру зачем вносить изменения?
Что-то я подозреваю, что необходимость проверки вызвана делением на ноль.
Если так, то и решение может быть совершенно простым? x/(z != 0 ? z : 1);
Пока не будет нормальной постановки задачи, не будет и решения. Одни догадки.
А было бы интересно. Скорее всего, обертка в класс и реализация оператора "=" помогли бы.