ReSharper C⁠+⁠+ 2026.1의 새로운 기능

ReSharper C⁠+⁠+ 2026.1은 시작 시간이 단축되고 메모리 사용량이 감소합니다. 이번 릴리스에는 C⁠+⁠+⁠26 #embed 디렉티브 및 기타 새로운 언어 기능 지원이 추가되었습니다. 코딩 지원 개선 사항에는 C⁠+⁠+⁠20 모듈에 대한 자동 가져오기와 새로운 접미사 코드 완성 시나리오가 포함됩니다. Unreal Engine 개발자는 개선된 Blueprint 통합과 향후 출시될 Unreal Engine 5.8에 대한 호환성 개선의 혜택을 누릴 수 있습니다.

성능

ReSharper C⁠+⁠+ 2026.1은 IDE 경험의 모든 단계에서 상당한 수준의 성능 최적화를 제공하며, 특히 대규모 Unreal Engine 프로젝트의 요구 사항에 맞게 최적화되었습니다. Out-of-Process 모드에서 Unreal Engine용 Lyria 샘플 프로젝트를 측정하여 이러한 개선 사항을 입증했습니다.

  • C⁠+⁠+ 코드의 초기 인덱싱이 이제 최대 20% 향상되어, 솔루션을 처음 열 때 대기 시간이 줄어듭니다.
  • 웜 스타트업 시간이 20% 이상 개선되어, 이전에 열었던 솔루션으로 다시 여는 속도가 눈에 띄게 빨라졌습니다.
  • 웜 스타트 후의 백엔드 메모리 사용량이 최대 21% 감소하여, 이후 워크플로에서 더 많은 리소스를 사용할 수 있습니다.

언어 기능

ReSharper C⁠+⁠+는 이제 C⁠+⁠+⁠26 및 C23에서 도입된 #embed 전처리기 디렉티브를 지원합니다. 이 디렉티브를 사용하면 외부 도구나 코드 생성 없이도 바이너리 리소스 파일의 내용을 소스 코드에 직접 임베드할 수 있습니다.

이번 릴리스에는 두 가지 추가 언어 기능 지원도 포함되었습니다.

  • _Countof 연산자: ReSharper C⁠+⁠+는 이제 배열 요소 수를 반환하는 C2Y(차기 C 표준)의 _Countof 연산자를 인식합니다.
  • 확장 부동 소수점 유형: C⁠+⁠+⁠23에서 표준화된 bfloat16_t, float16_tfloat128_t 부동 소수점 유형이 이제 지원됩니다.

ReSharper C⁠+⁠+ 2026.1은 컴파일러 고유 확장 기능과의 호환성을 개선합니다.

  • 중첩 함수: ReSharper C⁠+⁠+는 이제 C 코드에서 함수 내부에 또 다른 함수를 정의할 수 있는 GCC 확장 기능을 지원합니다.
  • _Nullable/_Nonnull 한정자: Clang의 포인터 null 가능성 한정자가 이제 파서에서 인식됩니다.

코딩 지원

ReSharper C⁠+⁠+⁠의 새로운 C⁠+⁠+⁠20 모듈용 자동 임포트 지원으로 인지 부하를 줄이세요. 내보낸 심볼을 사용하지만 해당 import 선언이 누락된 경우, IDE가 이제 이를 자동으로 삽입하는 스마트 제안을 제공합니다. 현재 자동 임포트는 기본 모듈 인터페이스 유닛 및 모듈 파티션에서 직접 내보낸 심볼에 대해서만 지원됩니다.

Postfix 코드 완성이 다음 시나리오를 포함하도록 확장되었습니다.

  • 기본 유형: Postfix 코드 완성은 이전에는 클래스 및 구조체 유형에서만 작동했습니다. 이제 int, bool, float와 같은 기본 유형의 표현식도 처리합니다.
  • 리터럴: Postfix completion이 이제 리터럴 뒤에서도 작동하므로, 42.cos를 입력하면 cos(42)로 확장됩니다.
  • 사용자 정의 리터럴 접미사: 이제 사용자 정의 리터럴 연산자에 대해 코드 완성을 사용할 수 있습니다. 리터럴 뒤에 _를 입력하면, ReSharper C⁠+⁠+가 현재 범위에서 사용 가능하며, 일치하는 operator"" 접미사를 제안합니다.

두 가지 자동 들여쓰기 개선 사항이 더 매끄러운 편집 경험에 기여합니다.

  • 제어 흐름 문이나 클래스 정의의 중괄호 사이에서 Enter를 누르면, 속성이 있는 경우(예: class [[deprecated]] MyClass {})에도 이제 커서가 적절한 들여쓰기와 함께 올바르게 위치합니다.
  • extern 블록 내부의 자동 들여쓰기가 이제 Indent linkage specification block members(링키지 사양 블록 멤버 들여쓰기) 서식 지정 설정을 준수합니다.

Unreal Engine

ReSharper C⁠+⁠+ 2026.1은 Blueprint 지원을 개선합니다.

  • Code Vision의 BlueprintPure: Code Vision은 이제 BlueprintCallable 외에도 BlueprintPure 지정자가 표시된 함수를 인식합니다.
  • Code Vision의 이벤트 구현: Code Vision은 이제 Blueprint 에셋에서 BlueprintNativeEventBlueprintImplementableEvent 함수 구현을 감지합니다.
  • 델리게이트 프로퍼티에 대한 Find Usages: 이제 Find UsagesBlueprintAssignable 델리게이트 프로퍼티에 대해 Blueprint 측 바인딩을 찾아냅니다.
  • 개선된 Blueprint 검색 정확도: Blueprint 참조에 대한 Find Usages가 이제 Blueprint 이름 대신 에셋 경로 기준으로 검색합니다. 이는 프로젝트에 이름이 같은 Blueprint가 여러 개 포함되어 있더라도 검색 결과가 더 이상 모호하지 않음을 의미합니다.

ReSharper C⁠+⁠+는 이제 기본적으로 Unreal Engine 플러그인을 인덱싱합니다. Unreal Engine 프로젝트에서 플러그인 사용이 증가하고 최근 성능이 향상됨에 따라, 기본적으로 플러그인을 인덱싱하면 별도 설정 없이 더 나은 코드 분석 및 탐색 기능을 사용할 수 있습니다. 이전 동작은 Settings(설정)ReSharper | Options(옵션) | Code Editing(코드 편집) | C/C++ | Unreal Engine 페이지에서 복원할 수 있습니다.

ReSharper C⁠+⁠+는 또한 곧 출시될 Unreal Engine 5.8의 UnrealHeaderTool 변경 사항에 대한 지원을 추가합니다. 특히 DECLARE_DYNAMIC_MULTICAST_DELEGATE 매크로가 더 이상 코드 분석에서 가양성(false-positive) 오류를 발생시키지 않습니다.

Unreal Engine 개발을 위한 독립실행형 크로스 플랫폼 IDE에 관심이 있다면 Rider를 사용해 보세요. Rider와 ReSharper C⁠+⁠+의 Unreal Engine 지원이 일치하도록 조정되어 Rider 2026.1 업데이트에서도 동일한 개선 사항을 기대할 수 있습니다.

코드 분석

ReSharper C⁠+⁠+ 2026.1은 번들로 제공되는 Clang-Tidy 바이너리를 업데이트하여 LLVM 22 릴리스의 최신 검사 내용 및 개선 사항을 가져옵니다.

새로운 검사 기능이 구조체에서 선언된 멤버 순서와 다른 순서로 나타나는 지정 초기화를 감지합니다. C⁠+⁠+⁠20은 지정된 초기화자가 선언 순서를 따르도록 요구하므로, 순서가 맞지 않는 초기화자는 컴파일 오류를 발생시킵니다. ReSharper C⁠+⁠+는 이제 이러한 사례에 플래그를 지정하고, 구조체 정의와 일치하도록 초기화자 목록의 순서를 자동으로 조정하는 빠른 수정을 제공합니다.

또 다른 새로운 검사는 함수가 기본 클래스에서 재정의하는 가상 함수와 다른 액세스 수준(public, protected 또는 private)을 가질 때 경고를 표시합니다. C⁠+⁠+는 재정의 시 액세스 수준을 변경하는 것을 허용하지만, 이는 종종 의도치 않은 결과이며 예상치 못한 동작으로 이어질 수 있습니다. 이 검사는 이러한 미세한 불일치를 포착하는 데 도움이 됩니다.

이번 릴리스는 Unused symbol 검사를 .cpp 소스 파일에 정의된 클래스 멤버로 확장합니다. 이전에는 이러한 멤버가 외부에서 보일 수 있다고 가정되어 Unused symbol 분석에서 제외되었습니다. 이제 이들은 static 함수 및 익명 네임스페이스 멤버와 동일한 방식으로 분석됩니다.

탐색

복잡한 코드베이스를 최소한의 노력으로 탐색하고 이해할 수 있도록 C⁠+⁠+ 파일의 여백 표시를 개선했습니다.

  • 구문 강조가 적용된 툴팁: 여백 표시 위에 마우스를 올리면 나타나는 툴팁에 구문 강조가 적용되어 내용을 한눈에 파악할 수 있습니다.
  • 기본 클래스로 내비게이션: 클래스 정의에 표시되는 새로운 여백 아이콘을 통해 상속 계층 구조를 따라 기본 클래스로 이동할 수 있으며, 기존의 파생 클래스 탐색 표시를 보완합니다.

Go to Declaration 및 기타 내비게이션 액션이 이제 타입 이름뿐만 아니라 중괄호 초기화 표현식(예: MyStruct { 1 })의 여는 중괄호에서도 작동합니다.

Visual Studio 통합

ReSharper C⁠+⁠+ 툴팁을 이제 Visual Studio 2026에서 사용할 수 있으며, 초기 Visual Studio 2026 호환성 릴리스에서 누락되었던 툴팁 지원을 복원했습니다. 툴팁 표시 방식도 개선되었습니다. 이제 아이콘을 통해 심볼 타입을 구분할 수 있으며, 테마 지원이 강화되었습니다.

ReSharper의 여러 에디터 UI 요소가 업데이트되어 Visual Studio의 현대적인 경험과 더 잘 어울리도록 개선되었습니다.

디자인 개편으로 코드 완성 UI가 에디터 내에서 더 깔끔하고 일관된 모습을 선사합니다.

또한 여러 관련 UI 구성 요소, 예를 들어 매개변수 정보 팝업, 툴팁기타 에디터 팝업도 현대적으로 개선하여, 오래된 시각적 요소를 교체하고 다양한 테마와 DPI 설정에서 시각적 완성도를 높였습니다.

업데이트된 UI는 이제 Visual Studio의 에디터 확대/축소 기능을 지원하여, 확대 수준이 변경될 때 완성 목록과 파라미터 정보가 올바르게 확장되도록 보장합니다.

ReSharper C⁠+⁠+ 2026.1은 프로젝트 모델과 관련된 여러 문제를 해결합니다.

  • Windows Driver Kit(WDK) 프로젝트: ReSharper C⁠+⁠+는 이제 WDK 전용 플랫폼 도구 모음을 올바르게 인식하고 적절한 기본 전처리기 정의를 제공합니다.
  • WinUI 3 프로젝트: 포함 경로가 이제 올바르게 구성됩니다.
  • 타입 라이브러리용 라이브러리 디렉터리: ReSharper C⁠+⁠+는 이제 Visual Studio 프로젝트 설정에 구성된 라이브러리 디렉터리에서 COM 타입 라이브러리 파일(.tlb)을 확인합니다.

이번 릴리스에 도입된 다른 모든 변경 사항을 알아보려면 ReSharper의 새로운 기능 페이지를 살펴보세요.