что есть из утилит, кроме опции -E у gcc для такого?
В частности, но не только, переименовать все name любого типа в вид с namespace::name. Все struct в класс, развернуть все шаблоны, явно прописать дефолные параметры функции при вызове, удалить все лишние пробелы и т.п. И получить выхлоп в виде текста.
Например, из
MyNamespace
{
struct MyStruct
{
static int func(int c = 0)
{ return c + 1;
}
int y;
};
auto x = MyStruct::func();
}
получить
MyNamespace
{
struct MyStruct
{
public: static int func(int c = 3)
{
return c + 1;
}
public:int y;
};
int x = MyNamespace::MyStruct::func(3);
}