我有以下代码片段,就像我想要的一样:

#include <iostream>

int main(int argc, char* argv[])
{
    for (auto i: { 1, 2, 3 })
    {
        std::cout << i << std::endl;
    }
}

不幸的是,astyle将其转换为:
#include <iostream>

int main(int argc, char* argv[])
{
    for (auto i :
            {
                1, 2, 3
            })
    {
        std::cout << i << std::endl;
    }
}

有什么方法可以使astyle对待初始化程序列表大括号进行不同处理(即忽略它们)?

这些是我目前的选择:
--mode=c --style=allman --indent=spaces=4 -max-code-length=100 --attach-namespaces --pad-oper --pad-header

最佳答案

只需添加选项--keep-one-line-blocks所以,所有选项都是

--mode = c --style = allman --indent = spaces = 4 --max-code-length = 100 --attach-namespaces --pad-oper --pad-header --keep-one-line-阻止

#include <iostream>

int main( int argc, char* argv[] )
{
    for ( auto i : { 1, 2, 3 } )
    {
        std::cout << i << std::endl;
    }

    bool br = false;
    if ( true )
    {   br = true; cout << "Just test" << endl; }
}

但是,您应该小心。
添加--keep-one-line-blocks选项后,astyle只会保留所有一行,例如最后一行。

关于c++ - astyle处理数组初始化花括号可以不同吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39510081/

10-13 04:35