【问题标题】:Beautify C++ code to add brackets to conditional statements美化 C++ 代码以在条件语句中添加括号
【发布时间】:2010-09-24 10:29:56
【问题描述】:

如何美化 C++ 代码以在条件语句中添加括号?我需要做的是改变:

if ( myCondition )
    setDateTime( date, time );

if ( myCondition )
{
    setDateTime( date, time );
}

但我必须这样做数百次。我使用了AStyle,但我找不到如何使用它。

除了满足客户的编码标准之外,我想这样做的原因是我必须用setDate( date )setTime( time ) 替换某些调用,例如上面对setDateTime( date, time ) 的调用,我可以很容易地做到这一点正则表达式,但最终是这样的:

if ( myCondition )
    setDate( date );
    setTime( time );

显然不对!!!

【问题讨论】:

  • 我不知道这方面的工具。重新正则表达式替换,您总是可以替换 { setDate(date); setTime(time); } - 如果有额外的 {} 级别也没关系。
  • 现在我们已经知道我们应该首先使用方括号 :) 在旁注中,如果你可以控制setDateTime,我想你可以修改它来调用@分别是987654332@和setTime
  • @Michael:很好,也感谢 Steve Jessop 指出这一点。我的客户正在从一个子系统转移到另一个子系统,理想情况下,最好彻底休息一下并使用没有任何“帮助程序”的新 API 使其看起来像旧 API。这些都很好,但是当没有人知道为什么要引入帮助器时,可能会让人感到困惑(顺便说一下,setDate 等只是示例,而不是涉及更多的真实事物。)也就是说,这一切都归结为以多快(阅读:便宜)可以做到这一点。

标签: c++


【解决方案1】:

static inline void setDateTime(date, time) { setDate(date); setTime(time); }

关于if:astyle 选项--add-bracketsbrackets=break 结合是否对您不起作用?当我使用 astyle 时,我发现很难让它完全按照我的意愿去做。因此,如果您要使用它,最简单的方法是根据一组 astyle 参数定义编码风格指南,然后使用 astyle 来强制执行它们。

我并没有被不一致的风格所困扰,我个人认为这是值得的,但是客户总是勉强容忍对。

【讨论】:

  • 谢谢,看起来 --add-brackets 似乎完全符合我的要求。也就是说,我还没有尝试过。非常感谢。
【解决方案2】:
s/setDateTime(date, time)/{ setDate(date); setTime(time); }/

【讨论】:

  • 谢谢。当然,这确实有效,但是它具有奇怪但通常无害的副作用,即 all setDateTime() 调用即使不是有条件的也会被括起来。在这再次通过 AStyle 之后,生成的代码看起来很奇怪 - 没有明显原因的中间代码块。
  • 这不是简单的文本替换,宏是干什么用的?在某种程度上,他们是为了任何事情,我的意思是 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 2021-10-29
相关资源
最近更新 更多