Может ли astyle обрабатывать скобки для инициализации массива по-разному?

У меня есть следующий фрагмент кода, который в точности такой, как я хочу:

#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

3

Решение

Просто добавьте опцию --keep-one-line-blocks
Итак, все варианты

—mode = c —style = allman —indent = пробелы = 4 —max-code-length = 100 —attach-namespss —pad-oper —pad-header —держать-однострочных-блоки


#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 просто сохраняет все блоки одной строки, такие как последняя строка.

1

Другие решения

Других решений пока нет …