小编psa*_*lyi的帖子

为什么BOOST_FOREACH无法处理const boost :: ptr_map?

void main()
{
  typedef boost::ptr_map<int, char>  MyMap;
  //typedef std::map<int, char *>  MyMap;  // in contrast with std type it works

  MyMap mymap;

  mymap[1] = new char('a');
  mymap[2] = new char('b');
  mymap[3] = new char('c');

  BOOST_FOREACH(MyMap::value_type value, mymap)
  {
    std::cout << value.first << "  " << value.second << std::endl;
  }

  MyMap const & const_mymap = mymap;

  BOOST_FOREACH(const MyMap::value_type value, const_mymap)
  {
    std::cout << value.first << "  " << value.second << std::endl;
  }
}
Run Code Online (Sandbox Code Playgroud)

以下错误消息来自第二个BOOST_FOREACH的GCC

error: conversion from 'boost::ptr_container_detail::ref_pair<int, const char* const>' …
Run Code Online (Sandbox Code Playgroud)

c++ foreach boost

8
推荐指数
1
解决办法
1597
查看次数

标签 统计

boost ×1

c++ ×1

foreach ×1