Ну, незважаючи на коментарі всіх вас, експертів, я абсолютно не згоден з тим, що проблема підтримки рефакторингу має щось спільне з семантикою мови С ++ або будь-якою мовною семантикою. За винятком того, що самі розробники компіляторів не вирішують впровадити його в першу чергу через власні причини чи обмеження, якими б вони не були.
І образи не слід сприймати, але мені шкода сказати, містер jsb, вищевказане посилання, яке ви надали на підтримку вашої справи (тобто Йосефка) щодо дефекту С ++, абсолютно не може бути імовірним. Це більше схоже на те, що ви даєте вказівки "Лос-Анджелесу", коли хтось просить про "Сан-Франріско".
На мою думку, підняття проблеми з труднощами рефакторингу для певної мови більше схоже на підняття пальця на цілісність мови. Особливо для мов, що часом буває просто болем .... коли йдеться про їх декларування та використання змінних. :) Добре! скажи мені, як ти втрачаєш якийсь вузол у дереві вузлів ... так? Отже, що це робити з будь-якою мовою, нехай це буде так просто, як код машинного рівня. Ви знаєте, що компілятор VS може легко виявити, чи є якась змінна або процедура мертвим кодом. Зрозумів?
Про розробку сторонніх інструментів. Я думаю, що виробники компіляторів можуть реалізувати це набагато легше та ефективніше, якщо вони коли-небудь захотіли використовувати інструмент третьої сторони, який повинен дублювати всю базу даних синтаксичного аналізу для його обробки. Сьогодні компілятор може дуже ефективно оптимізувати код на рівні машинного коду, і я чую тут, що важко сказати, як якась змінна використовується раніше. Ви гадаєте, ви не звернули жодної реальної уваги на внутрішню роботу компілятора. Яку базу даних вона зберігає.
І впевнений, це майже та сама база даних, яку IDE використовує для всіх подібних цілей. Раніше компілятор був лише окремою суттю, а IDE - лише текстовим редактором з певною спеціалізацією, але з часом розрив між компілятором та редактором IDE стає меншим, і його безпосередньо починає працювати над подібною аналізованою базою даних. Що дозволяє ефективніше обробляти всі ці проблеми, пов’язані з інтелісенсом та рефакторінгом чи іншими синтаксисом. З усіма попередньо скомпільованими речами та JIT заповнення цього пробілу майже недбале. Тому майже має сенс використовувати одну і ту ж базу даних для обох цілей, інакше ваш попит на пам’ять зросте через дублювання.
Ви всі програмісти - я ні! А у вас, хлопці, здається, виникають труднощі з візуалізацією того, як можна реалізувати рефакторинг для C ++ або будь-якої мови, яку я не можу зрозуміти. Це просто для чогось, що ви повинні докласти більше зусиль, а деякі менше, залежно від того, наскільки важкою є людина, яку ви намагаєтесь штовхнути.
У будь-якому випадку, проти гарної IDE, особливо якщо мова йде про C #.
Rename all
такий функціонал, як той у Xcode C ++.