В МТ есть не мало различных перечислений. Иногда их нужно передавать и каждому их них что-то присваивать. Возник вопрос, можно ли получить размер перечисления? Как я понимаю не возможно. Но иногда это на порядок сокращает затраты времени и строки кода.
Было бы удобно, что бы можно было, например, была возможность получить размер перечисления периодов ENUM_TIMEFRAMES и потом в цикле пробежать и что-то сделать, а не выписывать пачку if"ов.. и напротив константу периода.
Если пишу сам, делаю так
enum months { January, February, March, April, May, June, July, August, September, October, November, December, End // в конце любого enum вставляю End, годится для членов без явной инициации };
**
Если пишу сам, делаю так
**
End то тут зачем? Я сам такие свои перечисления создаю. Но в данном случае всё-равно размер через точку не получить. Нет резона его создавать. А получить один из элементов можно стандартно и без того.
В МТ есть не мало различных перечислений. Иногда их нужно передавать и каждому их них что-то присваивать. Возник вопрос, можно ли получить размер перечисления? Как я понимаю не возможно. Но иногда это на порядок сокращает затраты времени и строки кода.
Было бы удобно, что бы можно было, например, была возможность получить размер перечисления периодов ENUM_TIMEFRAMES и потом в цикле пробежать и что-то сделать, а не выписывать пачку if"ов.. и напротив константу периода.
В цикле не всегда возможно. Ведь члены перечисления могут следовать не подряд. ENUM_TIMEFRAMES - яркий тому пример.
if-ы плодить тоже не нужно. С этим быстро справится switch.
End то тут зачем? Я сам такие свои перечисления создаю. Но в данном случае всё-равно размер через точку не получить. Нет резона его создавать. А получить один из элементов можно стандартно и без того.
о гос-с-споди...
enum months { January, February, March, April, May, June, July, August, September, October, November, December, End // в конце любого enum вставляю End, годится для членов без явной инициации }; int length = (int)End; // 12
if-ы плодить тоже не нужно. С этим быстро справится switch.
У меня switch и используется. Я имел ввиду каждый кейсы выбирать, а можно было бы проще. Но как есть.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В МТ есть не мало различных перечислений. Иногда их нужно передавать и каждому их них что-то присваивать. Возник вопрос, можно ли получить размер перечисления? Как я понимаю не возможно. Но иногда это на порядок сокращает затраты времени и строки кода.
Было бы удобно, что бы можно было, например, была возможность получить размер перечисления периодов ENUM_TIMEFRAMES и потом в цикле пробежать и что-то сделать, а не выписывать пачку if"ов.. и напротив константу периода.