3

我有以下代码片段,这正是我想要的:

#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
4

1 回答 1

1

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

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


#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 只保留所有一行块,例如最后一行。

于 2016-09-15T12:21:01.130 回答