Re[3]: No more ugly functors
От: folk Россия  
Дата: 14.11.03 13:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, folk, Вы писали:


F>>>Навеяно словами WolfHound'a в ветке C++/CLI PDC presentation
Автор: alexkro
Дата: 01.11.03

F>>>Вот создал макрос для перебора всех элементов контейнера, стараясь как можно больше приблизиться к
F>>>приведенному там синтаксису.
F>>>В результате организация цикла выглядит примерно так: FOR_EACH(int& i, the_container)

А>>А можно ли данный FOR_EACH с std::map использовать ?


А>Вот так не работает, к сожалению


А>
А>FOR_EACH( pair<string,string>& i, mapStoS )
А>


Здесь у нас одна ошибка и одна проблема.

Ошибка: правильно будет:
FOR_EACH( pair<const string,string>& i, mapStoS )

Проблема: препроцессор понимает запятую между string и string как разделитель аргументов макроса и ругается что макрос FOR_EACH не берет 3 аргумента.
Интересно что я до сих пор не сталкивался с такой проблемой, т.к. всегда пользуюсь value_type. Например:

typedef std::map<std::string, std::string> mapStoS_t;
mapStoS_t mapStoS;
...
FOR_EACH(mapStoS_t::value_type& i, mapStoS) ...
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.