0

我在格式化 C++ lambda 时遇到了麻烦

这就是它把我的 lambda 变成:

auto print = [](auto const &i, qi::unused_type, qi::unused_type)
             {
                 qDebug() << i;
             };

这就是我想要的:

auto print = [](auto const &i, qi::unused_type, qi::unused_type)
{
    qDebug() << i;
};

现在有没有人负责定位牙套的设置是什么?

4

1 回答 1

2

查看您的配置文件,似乎有一些流氓设置:

  1. 在第 223 行

    # Align continued statements at the '='. Default=True
    # If FALSE or the '=' is followed by a newline, the next line is indent one tab.
    indent_align_assign                       = true     # false/true
    

    如您所见,您正在将 lambda 分配给符号。=额外的换行符被配置为与分配的符号对齐。

  2. 在第 830 和 833 行

    # The span for aligning on '=' in assignments (0=don't align)
    align_assign_span                         = 1        # number
    
    # The threshold for aligning on '=' in assignments (0=no limit)
    align_assign_thresh                       = 0        # number
    

    如果您不想在第 223 行更改配置,也许您可​​以尝试使用这对设置。

如果更改这些设置中的任何一个对您来说都不是很合理,那么您可能必须进行一些认真的代码样式改革。一方面,我看到示例 lambda 适合作为一行语句。也许将它们保持在单行中。(它们将保持这种状态,因为您的配置文件中的第 964 行确保了这一点)。

于 2016-07-13T20:28:48.310 回答