LINUX.ORG.RU

Полукомпиляция С++

 , ,


0

4

что есть из утилит, кроме опции -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);
}

★★★★★

У тебя код неправильный. А ещё ты хочешь какую-то НЁХ, зачем это тебе? Ну и напиши на перле собственный препроцессор плюсов с твоими хотелками.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

что с кодом не так?

зачем это тебе?
Ну и напиши на перле собственный препроцессор плюсов с твоими хотелками.

сам спросил, сам и ответил зачем это нужно

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

а, ну ещё какая-нибудь тулза для рефакторинга

если под твои хотелки ничего не подходит, можно самому написать на libclang

f1u77y ★★★★
()

Можно попробовать настроить clang-format для такого ужасного форматирования
Но подстановку имен и типов я не знаю, как можно сделать. Не представляю, как можно развернуть auto в шаблоне.

andreyu ★★★★★
()
Последнее исправление: andreyu (всего исправлений: 1)

Такого нет, бери libclang и пиши свое.

anonymous
()
Ответ на: комментарий от andreyu

Но подстановку имен и типов я не знаю, как можно сделать. Не представляю, как можно развернуть auto в шаблоне.

Шаблон типизируется только при инстанциировании. Кстати, если бы такая штука была, то можно было бы видеть с какими типами реализовался шаблон. Ещё бы потом увидеть, что получилось удалить при оптимизации...

monk ★★★★★
()
Ответ на: комментарий от monk

Шаблон типизируется только при инстанциировании.

О том и речь.

andreyu ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

если тебе не подходит astyle, то тогда не знаю зачем ты это хотишь

Astyle не умеет в семантику языка. На сложных конструкциях ломает форматирование.

andreyu ★★★★★
()

По сути, есть флаг -S, которые уже покажет что там будет вообще. Только подозреваю, что для твоих целей это перекомпилировано. Тебе надо... недоперекомпировать.

KennyMinigun ★★★★★
()
Ответ на: комментарий от Dudraug

для того, чтобы скрипт понял, что там за типы реально

next_time ★★★★★
() автор топика
Ответ на: комментарий от andreyu

Можно попробовать настроить clang-format для такого ужасного форматирования

отличное, машиночитаемое, форматирование, что не так?

next_time ★★★★★
() автор топика
Последнее исправление: next_time (всего исправлений: 1)
Ответ на: комментарий от fluorite

о, весьма неплохо, судя по описанию, спасибо

next_time ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

для того, чтобы выхлоп пусть на вход самописному парсеру, про проблемы астайла уже сказали

next_time ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.