Ash*_*ppa 2 c++ string boost visual-studio
我正在使用BOOST_FOREACH迭代C++字符串的字符,如下所示:
void foobar(const string& str)
{
BOOST_FOREACH(const char ch, str)
{
// Do something with ch
}
return;
}
Run Code Online (Sandbox Code Playgroud)
这段代码适用于以下编译模式:
它仅在此模式下导致运行时错误(例外):
上面的代码片段没有编译错误或警告,让我相信BOOST_FOREACH知道它在这里处理的容器.此外,更改const char ch为const char& ch行为没有变化.
为什么这段代码会导致这种糟糕的运行时行为
为什么只能在Debug DLL模式下?
在C++字符串上使用BOOST_FOREACH是错误的吗?
如果是,那么最佳解决方法是什么?
(请注意,我正在使用Visual Studio 2008和Boost 1.39.)
在C++字符串上使用BOOST_FOREACH绝对正确(参见http://www.boost.org/doc/libs/1_39_0/doc/html/foreach.html#foreach.introduction).
看起来像是问题所在
// Do something with ch
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
969 次 |
| 最近记录: |