Поддерживаемые версии Visual Studio | 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 | Не поддерживается |
| Visual Studio .NET 2003 | Не поддерживается |
| Visual Studio .NET 2002 | Не поддерживается |
| Visual C++ 6.0 | Не поддерживается |
Поддерживаемые спецификации C/C++ | C/C++ | C/C++ |
C++/CLI | C++/CLI |
Обнаружение проблем в коде | Подсветка неизвестных символов | Подсветка неразрешенных символов |
Навигация между проблемами в коде (окно инструментов, редактор) | Навигация между проблемами в коде (окно инструментов, редактор, специальные команды) |
| 21 инспекция Clang-Tidy | 264 интегрированные проверки Clang-Tidy |
| Не поддерживается | 652 интегрированные диагностические проверки Clang |
| Не поддерживается | 87 интегрированных проверок Clang Static Analyzer |
| Проверка правописания | Проверка правописания |
| Подсветка несоответствующих разделителей | Не поддерживается |
| Не поддерживается | Нарушение правил именования |
| Нулевую константу можно заменить на nullptr | Нулевую константу можно заменить на nullptr |
| Переопределение функции без спецификатора override | Переопределение функции без спецификатора override |
| Конструктор shared_pointer/unique_pointer можно заменить на make_shared/make_unique | Конструктор умного указателя используется вместо соответствующей функции make |
| Не поддерживается | Более 180 собственных инспекций кода |
| Не поддерживается | Инспекции кода для большинства ошибок и некоторых предупреждений компилятора |
| Не поддерживается | Асинхронный поиск проблем с кодом в любой области |
| Не поддерживается | Запуск инспекции кода из командной строки |
Быстрые исправления | Генерация объектов из использования | Генерация объектов из использования |
Добавление #include | Импорт глобальной переменной, типа, определения типа, функции, макроса |
| Создание объявления | Создание объявления |
| Исправление неверного регистра | Не поддерживается |
| Больше 10 быстрых исправлений для настраиваемых инспекций | Больше 120 быстрых исправлений для настраиваемых инспекций |
Помощь при написании кода | Подсветка парных разделителей | Подсветка парных объектов (включая макросы и аргументы формата в printf и boost::format ) |
Подсветка текущей строки | Подсветка текущей строки |
| Аббревиатуры / Сокращения | CamelHumps |
| Списки предложений / Умные предложения | Контекстное автодополнение |
| Преобразование точки в -> | Преобразование точки в -> и обратное действие |
| Умное выделение | Расширение/сужение области выделения + Выделение текущего члена |
| Буфер обмена с несколькими записями | История буфера обмена с предпросмотром объектов |
| Информация о параметрах | Информация о параметрах |
| Не поддерживается | Подсказки в редакторе |
| Дополнительное выделение цветом (6 видов идентификаторов) / Системные символы выделяются курсивом / Локальные символы выделяются жирным шрифтом | Подсветка синтаксиса (20 различных идентификаторов) |
| Подсветка ссылок на текущий символ | Подсветка использований символа в текущем файле |
| Оборачивание выделенного фрагмента кода конструкцией языка | Оборачивание фрагмента кода конструкцией языка по шаблону / Добавление однострочных или блочных комментариев |
| Автоматическое добавление закрывающих скобок | Автоматическое добавление парных разделителей и знаков форматирования |
| Быстрый просмотр документации | Подсказки с документацией и подсветкой кода |
| Автоматическое раскрытие многострочных комментариев нажатием Enter | Автоматическое раскрытие многострочных комментариев /**/ и /// нажатием Enter |
| Добавление нижнего подчеркивания после m и Shift | Не поддерживается |
| Улучшенные списки автодополнения | Не поддерживается |
| Подсветка совпадающих слов (в коде и комментариях) | Не поддерживается |
| Индикатор длины строки (отступа справа) | Не поддерживается |
| Сортировка строк | Не поддерживается |
| Вставка пути | Не поддерживается |
| Предварительный просмотр файлов, указанных в комментариях | Не поддерживается |
| Сброс масштаба в редакторе | Не поддерживается |
| Не поддерживается | Дублирование текущей строки или выделенного фрагмента кода |
| Не поддерживается | Постфиксное автодополнение |
| Не поддерживается | Постфиксные шаблоны |
| Не поддерживается | Быстрый просмотр документации |
| Не поддерживается | Автоподсветка точек выхода из функции |
Соответствие выбранному стилю кода | Форматирование после вставки (правила форматирования унаследованы из Visual Studio) | Применение правил форматирования в любой области (собственный расширенный набор правил форматирования ReSharper C++) |
Не поддерживается | Обучение правилам форматирования на основе существующего кода |
| Не поддерживается | Поддержка EditorConfig |
| Не поддерживается | Поддержка Clang-Format |
| Не поддерживается | Применение настроек стиля кода и удаление избыточного кода в любой области с помощью действия Code Cleanup |
| Не поддерживается | Настраиваемый стиль директивы включения заголовочного файла |
| Не поддерживается | Настраиваемые правила именования с предустановленными схемами (STL, Google, LLVM, CamelCase, Microsoft) |
| Не поддерживается | Настраиваемый стиль модификаторов const и volatile в сгенерированном коде |
| Не поддерживается | Настраиваемый стиль директивы include в сгенерированном коде |
| Не поддерживается | Настраиваемый стиль инициализаторов указателей по умолчанию (0 |nullptr |NULL ) в сгенерированном коде |
Рефакторинги и преобразования кода | Доступ к командам рефакторинга | Рефакторинг элемента под кареткой |
Rename | Rename |
| Изменение сигнатуры | Изменение сигнатуры |
| Введение переменной | Введение переменной |
| Инкапсуляция поля | Инкапсуляция поля (с помощью действия генерации функций get и set) |
| Извлечение метода | Извлечение метода |
| Добавление/удаление фигурных скобок | Добавление/удаление фигурных скобок |
| Переименование файлов | Переименование файлов |
| Перенос реализации в исходный файл | Перенос реализации в исходный файл |
| Перенос реализации в заголовочный файл / объявление класса | Не поддерживается |
| Перенос выделенного кода в новый файл | Не поддерживается |
| Шаблоны для рефакторингов (с возможностью редактирования) | Не поддерживается |
| Преобразование экземпляра в указатель и наоборот | Не поддерживается |
| Упрощение объявления | Не поддерживается |
| Не поддерживается | Введение поля |
| Не поддерживается | Подстановка переменной |
| Не поддерживается | Введение псевдонима пространства имен |
| Не поддерживается | Введение/подстановка typedef |
| Не поддерживается | Добавление спецификатора = default ,
= delete , pure или virtual к функции |
| Не поддерживается | Преобразование ?: в if и обратно |
| Не поддерживается | Замена угловых скобок вокруг директивы #include на кавычки и наоборот |
| Не поддерживается | Преобразование объявления typedef в объявление псевдонима и наоборот |
| Не поддерживается | Преобразование в определение пространства имен с вложенностью |
| Не поддерживается | Преобразование обычного типа возвращаемого значения в trailing return type и обратно |
| Не поддерживается | Создание производного типа: класса, интерфейса, структуры, класса интерфейса, структуры интерфейса, ссылочного класса или ссылочной структуры |
| Не поддерживается | Перестановка операндов бинарного оператора сравнения |
| Не поддерживается | Перестановка аргументов оператора |
| Не поддерживается | Инициализация поля из параметра конструктора |
| Не поддерживается | Инверсия инструкции if |
| Не поддерживается | Объединение вложенных операторов if |
| Не поддерживается | Отрицание логического выражения |
| Не поддерживается | Удаление фигурных скобок |
| Не поддерживается | Замена auto на явное объявление типа |
| Не поддерживается | Замена 'decltype' явных значением типа |
| Не поддерживается | Замена 'decltype(auto)' явным объявлением типа |
| Не поддерживается | Разделить или объединить объявление с несколькими объявлениями |
| Не поддерживается | Подстановка вызова макроса |
| Не поддерживается | Замена псевдонима шаблонного типа |
| Не поддерживается | Явное указание аргументов шаблона |
| Не поддерживается | Замена typedef (или вложенных typedef) на тип из определения |
Генерация кода | Реализация интерфейса/виртуальных методов | Генерация отсутствующих/переопределяющих членов |
Генерация реализации | Генерация реализации + генерация реализаций на месте (inline implementation) |
| Генерация реализаций методов | Генерация определений |
| Генерация пропущенных операторов case | Генерация пропущенных операторов case для перечисляемых типов |
| Документирование метода | Документирование символа |
| Добавление объявления (Forward Declaration) для неопределенного символа | Добавление объявления (Forward Declaration) для неопределенного символа |
| Добавление члена | Не поддерживается |
| Добавление похожего члена | Не поддерживается |
| Не поддерживается | Генерация конструкторов |
| Не поддерживается | Генерация операторов copy и move |
| Не поддерживается | Генерация функций get и set |
| Не поддерживается | Генерация операторов равенства |
| Не поддерживается | Генерация операторов сравнения |
| Не поддерживается | Генерация операторов потока ввода-вывода (включая функции Boost.Serialization ) |
| Не поддерживается | Генерация hash-функции |
| Не поддерживается | Генерация swap-функции |
| Не поддерживается | Генерация методов Google Mock |
| Не поддерживается | Генерация функции для преобразования перечисления в строку (настраиваемая) |
| Не поддерживается | Создание производного типа |
Сниппеты и шаблоны | Шаблоны VA | 30 встроенных шаблонов + возможность создавать пользовательские шаблоны |
Оборачивание фрагмента кода в шаблон | 19 встроенных шаблонов для оборачивания кода + возможность создавать пользовательские шаблоны |
| Создать файл (нужно вызывать дважды для файлов заголовков и cpp) | Встроенные шаблоны файлов для класса и структуры (заголовочный и cpp-файл создаются одновременно) + пользовательские шаблоны файлов |
| Зарезервированные строки / заглушки для переменных окружения в шаблонах | Макросы в шаблонах кода |
| Редактор шаблонов | Редактор шаблонов |
| Создание шаблона из выбранного кода | Создание шаблона из выбранного кода |
| Не поддерживается | Многофайловые шаблоны |
Навигация и поиск | Переход к объявлению (команда Goto) | Переход к объявлению (с учетом использования) |
Переход к реализации (команда Goto) | Переход к реализации |
| Окно VA Outline | Просмотр структуры файла |
| Недавние файлы (VA view) | Переход к недавним файлам |
| Открыть файл в решении | Переход к файлу |
| Поиск символа в решении | Переход к символу |
| Переход к связанным файлам | Переход к связанным файлам |
| Переход к члену класса | Переход к члену файла |
| Переход по областям видимости | Переход к следующему/предыдущему члену |
| Поиск ссылок | Поиск использований |
| Поиск по контексту | Переход к предыдущему/следующему подсвеченному элементу / окно Find Results |
| Открытие связанного файла | Переключение между исходным и заголовочным файлом |
| Навигация вперед и назад по коду | Перемещение по истории навигации |
| VA-хештеги | Закладки |
| Ссылки на внешние источники | Объекты to-do поддерживают ссылки на внешние ресурсы |
| Список методов файла | Не поддерживается |
| Панель навигации VA | Не поддерживается |
| Просмотр информации о классе по наведению мыши | Не поддерживается |
| Подсветка файлов проекта в окне Output | Не поддерживается |
| Подсветка результатов поиска | Не поддерживается |
| Не поддерживается | Search everywhere |
| Не поддерживается | Переход к тексту |
| Не поддерживается | Переход к недавним изменениям |
| Не поддерживается | Переход к предыдущему изменению |
| Не поддерживается | Команда Navigate to |
| Не поддерживается | Переход к базовым символам |
| Не поддерживается | Переход к производным символам |
| Не поддерживается | Переход к типу символа |
| Не поддерживается | Переход к соседним файлам |
| Не поддерживается | Иерархия типов |
| Не поддерживается | Иерархия включенных заголовочных файлов |
| Не поддерживается | Переход к основному шаблону или к его специализациям |
| Не поддерживается | Нахождение текущего файла в Solution Explorer |
| Не поддерживается | Поиск действий и настроек |
| Не поддерживается | Навигация по точкам останова и окно Breakpoints |
| Не поддерживается | Анализ включенных заголовочных файлов |
Отладка | Фильтры для пошаговой отладки | Фильтры для пошаговой отладки |
| Временное отключение всех включенных точкек останова | Не поддерживается |
| Временная привязка всех точек останова к текущему потоку | Не поддерживается |
| Не поддерживается | Отслеживание значений переменных |
| Не поддерживается | DataTips с возможностью поиска |
Unreal Engine | Поддержка проектов UE4 | Поддержка проектов UE4 |
Умные подсказки для спецификаторов рефлексии | Автодополнение спецификаторов рефлексии |
| Не поддерживается | Быстрый просмотр документации для спецификаторов рефлексии UE4 |
| Поддержка удаленного вызова процедур UE4 | Поддержка удаленного вызова процедур UE4 |
| Не поддерживается | Рефакторинги Rename и Change Signature для работы с функциями UE4 RPC |
| Исключение исходных файлов из навигации | Не поддерживается |
| Не поддерживается | Отложенная индексация кода на движке |
| Не поддерживается | Поддержка правил именования UE4 |
| Не поддерживается | Специализированные проверки кода анализатором для UE4 |
Юнит-тестирование | Не поддерживается |
Помощь при юнит-тестировании с фреймворками Google Test, Catch 2.5,
Boost.Test, и doctest |
Управление настройками | Импорт и экспорт настроек | Автоматическая многоуровневая синхронизация настроек и пользовательских шаблонов |