Я пытался написать простой цикл map<int, int>
элемент, и мне интересно, почему 1-й синтаксис, который я использовал, не работает / компилируется?
Первая версия, которую я написал, была следующей, и она не компилируется с VS’2008 / boost версии 1.44:
std::map<int, int> myMap;
...
BOOST_FOREACH(map<int, int>::value_type &p, myMap)
{
}
Теперь, если я переписываю код, как показано ниже, компиляция в порядке, но почему?
typedef std::map<int, int> myMap_t;
myMap_t myMap;
...
BOOST_FOREACH(myMap_t::value_type &p, myMap)
{
}
Это макрос препроцессора, и ему не нравится ,
в map<int, int>
,
Других решений пока нет …