Comments 9
А как же тесты и доказательство инвариантов? Почему я должен поверить на слово, что измененный код выглядит и работает как старый? Я понимаю, что тут все четкие пацаны и им принято верить, но тем не менее ))))
Не все замены тривиальны, и точно не могут быть сделаны через поиск и замену.
В "звёздочка — часть типа" особенно можно накосячить
D гарантирует, что если вы скопируете в него сишный код, то он либо будет работать точно так же, как и в C, либо не скомпилируется вообще. Так что если вы оставите char *name,*text;
, ничего плохого не случится: компилятор просто укажет вам на ошибку.
впрочем, вероятно всё равно где-то типы не пройдут. но это не точно :))
в любом случае, это уже не массовая найти&заменить.
есть c2d тулзы?
Из конверторов полного исходника — C++ Conversion Wizard
Но честно говоря, они сделали большую бяку, когда задепрекейтили c-style arrays (
Но честно говоря, они сделали большую бяку, когда задепрекейтили c-style arrays (
Я когда свой небольшой проект портировал, то просто прошёлся по объявлениям массивов регвыром.
Вот с чем пришлось повозиться, так это с .ptr
при передаче массивов в функции. Но тут можно срезать углы, добавив на каждую такую функцию одноимённый шаблон, который передаёт статический массив в эту функцию.
Портируем make.c на D