Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, 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) ...
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн