Сравнение функциональности ReSharper C++ и Visual Assist
Здесь перечислены отличия между ReSharper C++ и расширением Visual Assist от Whole Tomato.
Поскольку оба продукта находятся в активной разработке и их функциональные возможности регулярно меняются, приведенная информация действительна для конкретных версий, указанных в заголовке сравнительной таблицы.
Если вы обнаружите неточности в таблице, сообщите нам об этом в комментариях — мы как можно скорее обновим данные.
![]() в Visual Studio 2019 + Visual Assist Build 2024.8 (2537) | в Visual Studio 2022 + ReSharper C++ 2024.3 | |
---|---|---|
Поддерживаемые версии Visual Studio | Visual Studio 2022 | Visual Studio 2022 |
Visual Studio 2019 | Visual Studio 2019 | |
Visual Studio 2017 | Visual Studio 2017 | |
Visual Studio 2015 | Visual Studio 2015 | |
Visual Studio 2013 | Visual Studio 2013 | |
Visual Studio 2012 | Visual Studio 2012 | |
Visual Studio 2010 | Visual Studio 2010 | |
Visual Studio 2008 | ||
Visual Studio 2005 | ||
Поддерживаемые спецификации C/C++ | C/C++ | C/C++ |
C++/CLI | ||
Исходные файлы CUDA | ||
Обнаружение проблем в коде | Подсветка неразрешенных символов | |
Отключение инспекций кода с комментариями | Отключение инспекций кода с комментариями | |
Отметки рекурсивных вызовов на полях редактора | ||
Быстрые исправления | ||
Помощь в написании кода | ||
Дополнительное выделение цветом (6 видов идентификаторов) / Системные символы выделяются курсивом / Локальные символы выделяются жирным шрифтом | Подсветка синтаксиса (20 различных идентификаторов) | |
Автоматическое раскрытие многострочных комментариев /**/ и /// и создание шаблонов документации нажатием Enter | ||
Генерация комментария Doxygen при вводе /// | ||
Подсветка совпадающих слов (в коде и комментариях) | ||
Автоподсветка точек выхода из функции | ||
Соответствие выбранному стилю кода | Форматирование после вставки (правила форматирования унаследованы из Visual Studio) | Применение правил форматирования в любой области (собственный расширенный набор правил форматирования ReSharper C++) |
Применение настроек стиля кода и удаление избыточного кода в любой области с помощью действия Code Cleanup | ||
Настраиваемый стиль директив #include в сгенерированном коде | ||
Рефакторинги и преобразования кода | ||
Инкапсуляция поля (действие Generate getters and setters) | ||
Добавление/удаление фигурных скобок | ||
Отрицание логического выражения | ||
Перемещение определений функций | ||
Перемещение класса | ||
Преобразование экземпляра в указатель и наоборот | ||
Упрощение объявления | ||
Сортировка методов в источнике | ||
Преобразование лямбды в метод | ||
Добавление спецификатора = default , = delete , pure или virtual к функции | ||
Упорядочивание cv-квалификаторов | ||
Преобразование ?: в if и обратно | ||
Замена угловых скобок вокруг директивы #include на кавычки и наоборот | ||
Преобразование вызова в канал и обратно | ||
Преобразование условия в ограничение параметра | ||
Преобразование объявления typedef в объявление псевдонима и наоборот | ||
Преобразование в определение пространства имен с вложенностью | ||
Преобразование обычного типа возвращаемого значения в trailing return type и обратно | ||
Создание производного типа: класса, интерфейса, структуры, класса интерфейса, структуры интерфейса, ссылочного класса или ссылочной структуры | ||
Перестановка операндов бинарного оператора сравнения | ||
Перестановка аргументов оператора | ||
Инициализация поля из параметра конструктора | ||
Инверсия инструкции if , инверсия условия ?: | ||
Замена auto на явное объявление типа | ||
Замена 'decltype' явных значением типа | ||
Замена 'decltype(auto)' явным объявлением типа | ||
Разделить или объединить объявление с несколькими объявлениями | ||
Подстановка вызова макроса | ||
Замена псевдонима шаблонного типа | ||
Явное указание аргументов шаблона | ||
Замена typedef (или вложенных typedef) на тип из определения | ||
Замена UNREFERENCED_PARAMETER на [[maybe_unused]] | ||
Преобразование строки в необработанный строковый литерал C++11 и обратно | ||
Перемещение ограничения параметра шаблона в условие requires | ||
Генерация кода | ||
Создание производного типа | ||
Сниппеты и шаблоны | ||
Создать файл (нужно вызывать дважды для файлов заголовков и cpp) | Встроенные шаблоны файлов для класса и структуры (заголовочный и cpp-файл создаются одновременно) + пользовательские шаблоны файлов | |
Поиск и навигация | Переход к объявлению (команда Goto) | |
Переход к реализации (команда Goto) | ||
Отладка | ||
Временное отключение всех включенных точкек останова | ||
Временная привязка всех точек останова к текущему потоку | ||
Unreal Engine | ||
Исключение исходных файлов из навигации | Исключение исходных файлов из индексации | |
Поддержка удаленного вызова процедур UE4 | ||
Поддержка тестового фреймворка Unreal Engine | ||
Юнит-тестирование | Помощь при юнит-тестировании с фреймворками Google Test, Catch 2.5, Boost.Test, и doctest | |
Управление настройками | ||
Другие улучшения | ||
Локализация интерфейса (китайский, корейский и японский языки) | ||