【问题标题】: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)
    

    【讨论】:

    • 这不会更改任何现有代码,也不会使其更具可读性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多