【问题标题】:How to replace all BOOST_FOREACH with C++11 for in visual studio 2012?如何在 Visual Studio 2012 中用 C++11 替换所有 BOOST_FOREACH?
【发布时间】:2014-01-09 07:10:48
【问题描述】:
我有一个旧代码库,它积极使用 Boost。我将它迁移到vs2012。现在我想让代码更具可读性和现代性。我想知道如何在 Visual Studio 2012 中用 C++11 for 替换所有 BOOST_FOREACH?
我希望有一个可以与 VS find\replace 一起使用的正则表达式。
【问题讨论】:
标签:
c++
visual-studio
visual-studio-2012
boost
refactoring
【解决方案1】:
一个简单的 VS Find and Replace 正则表达式,你可以开始:
Find what: BOOST_FOREACH\((.+), (.+)\)
Replace with: for($1 : $2)
检查使用正则表达式
【解决方案2】:
只需重新定义它,您将保留与 C++03 的兼容性作为奖励。
假设你有#define foreach BOOST_FOREACH,只需重新定义:
#define foreach(value, container) for(value : container)