Что ж, несмотря на комментарии всех вас, экспертов, я полностью не согласен с тем, что проблема поддержки рефакторинга имеет какое-то отношение к семантике языка C ++ или любой другой семантике языка в этом отношении. За исключением того, что сам компилятор компилятора не решает реализовать его в первом случае из-за своих собственных причин или ограничений, какими бы он ни был.
И оскорбление не принимается, но я сожалею, что господин jsb вышеупомянутая ссылка, которую вы предоставили для поддержки вашего случая (например, yosefk) о дефекте C ++, совершенно не обсуждается. Это больше похоже на то, как вы указываете направление в Лос-Анджелес, когда кто-то просит Сан-Франциско.
По моему мнению, проблема с рефакторингом для определенного языка больше похожа на то, как указывать на целостность языка. Особенно для языков, которые иногда просто болезненны ... когда дело доходит до объявления и использования их переменных. :) Хорошо! скажи мне, как получилось, что вы потеряли какой-то узел в дереве узлов ... а? Так что же делать с любым языком, будь это так просто, как машинный код. Вы знаете, что компилятор VS может легко определить, является ли какая-то переменная или подпрограмма мертвым кодом. Понял мою точку зрения?
О разработке стороннего инструмента. Я думаю, что поставщики компиляторов могут реализовать это намного проще и эффективнее, если они когда-либо захотят использовать сторонний инструмент, который должен будет дублировать всю базу данных для его обработки. В настоящее время компилятор может очень эффективно оптимизировать код на уровне машинного кода, и я слышу здесь, что трудно сказать, как какая-то переменная использовалась ранее. Я полагаю, вы не обратили никакого реального внимания на внутреннюю работу компилятора. В какую базу данных это укладывается.
И, конечно, это почти та же база данных, которую IDE использует для всех подобных целей. В прошлый раз компилятор был просто отдельной сущностью, а IDE - просто текстовым редактором с некоторой специализацией, но со временем разрыв между компилятором и редактором IDE становился все меньше, и он непосредственно начал работать с аналогичной проанализированной базой данных. Что позволяет более эффективно обрабатывать все эти интеллектуальные смыслы и рефакторинг или другие проблемы, связанные с синтаксисом. Со всеми прекомпиляциями и JIT-компиляцией этот пробел почти небрежен. Поэтому практически имеет смысл использовать одну и ту же базу данных для обеих целей, иначе ваша потребность в памяти возрастет из-за дублирования.
Вы все программисты, а я нет! И вам, ребята, кажется, трудно представить, как можно реализовать рефакторинг для C ++ или любого языка, который я не могу понять. Речь идет только о том, что вы должны приложить больше усилий для чего-то меньшего, в зависимости от того, насколько тяжелым является человек, которого вы пытаетесь подтолкнуть.
В любом случае, против хорошей IDE, особенно когда дело доходит до C #.