![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
>а разве не выпадаете ?!
Где выпадаю? Просто ввожу новую конструкцию, которая синтаксически схожа с остальными. Без второго цикла ссылку пришлось иницализировать непосредственно в теле основного цикла, а тут бы возникла непонятка с операторными скобками. borisbn, можете попробовать __typeof или __typeof__. Или вообще убрать его и просто вызывать foreach(vector, int value). В последнем случае синтаксического сахарку становится намного меньше. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну к примеру :
Добавлено через 2 минуты и 12 секунд немножко оффтопа : 1. i в теле макроса не очень удобна, надеюсь она имеет такое имя лишь для примера 2. имхо логичнее (как бы общепринятей) содержимое называть на первом месте, а контейнер на втором.. |
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
Да, break и continue пролетают. Подумаю, что с ними делать.
1. Да 2. Имхо логичнее сначала указать, где ходим, потом - чем. Добавлено через 3 минуты break не замечал, потому что использую в тривиальных проходах, а реальные сложные проходы, где необходимо управление ими, у меня в любом случае организуются сложнее и редко затрагивают весь контейнер целиком. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
если обратите на новостандартный for, а также на подобные конструкции других распространенных языков, то можно заметить, что вначале идет чем, а потом где.. в общем стремятся соответсвовать _конструкции_ : for what in where Добавлено через 4 минуты и 9 секунд самое простое, что приходит в голову, заменить
на
по другому придется писать кучу кода.. |
||||
|
|||||
djamshud |
|
||||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
>если обратите на новостандартный for, а также на подобные конструкции других распространенных языков, то можно заметить, что вначале идет чем, а потом где..
Знаю, но мне это кажется нелогичным. Ну еще свою роль сыграло то, что в php это реализовано так:
А первый раз foreach я его увидел именно в нем. >if ( ( typeof((container)[0]) &value=(container)[i] ) && false) else Внутри if ничего не выйдет, это было первой идеей. Это синтаксическая (вроде бы) ошибка. Внутри if можно объявить переменную, ну и впрочем зафигачить туда любой код так:
Но она локальна внутри самого тела условия. Это сообщение отредактировал(а) djamshud - 20.7.2010, 20:09 -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
внутри всего блока включая блок else ![]() Это сообщение отредактировал(а) mes - 20.7.2010, 20:17 |
|||
|
||||
djamshud |
|
||||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
||||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
boostcoder, это ты Red Hat скажи.
|
|||
|
||||
dva300 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: нет Всего: 1 |
хм... я так понял что вопрос был очень даже прост а вот как далеко все зашло ![]() начинаю потихоньку влюблятся в этот язык ![]() --------------------
Участник движения Культура Вождения |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
а зачем? ![]() пусть тупят. больше идиотов - меньше конкурентов! |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну так она ж в фигурных скобках... иф тут не при делах.. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
djamshud, ловите и пилите ( она золотая © )
![]() http://codepad.org/BxudbmbN (см. ниже по тексту) естественно для полноценного foreacha далеко, но как альтернатива приведенному выше, думаю вполне сгодится ![]() Это сообщение отредактировал(а) mes - 21.7.2010, 12:23 |
|||
|
||||
Abyx |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 5 Всего: 10 |
вообще-то есть BOOST_FOREACH
в msvc есть for each(T x in container) {} , но его нет в гцц и такого не будет C++0x, там будет for(T x : container) {} . typeof в msvc нет и не будет, его нет в С++0х, там есть decltype, однако есть BOOST_TYPEOF который работает в msvc ----- о чем тема-то? Добавлено через 4 минуты и 27 секунд алсо в С++0х есть std::for_each(v.begin(), v.end(), [](T x){ ... }); а если применить boost.range2 то boost::for_each(v, [](T x){ ... }); |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ветвь оффтопика, о том, как сделать foreach с естественным поведением для собственных, не стл-совместимых контейнеров, используя только средства 5ти летней давности и без "доп." библиотек (в том числе std и boost ) ![]() Это сообщение отредактировал(а) mes - 21.7.2010, 10:19 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |