gpt4 book ai didi

c++ - 为什么 map 上的 BOOST_FOREACH 仅适用于 typedef

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:49 26 4
gpt4 key购买 nike

我试图通过 map<int, int> 编写一个简单的循环元素,我想知道为什么我使用的第一种语法不起作用/无法编译?

我写的第一个版本如下,它不能用 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> .

关于c++ - 为什么 map 上的 BOOST_FOREACH 仅适用于 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22481144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com