ReSharper C++ 2024.2의 새로운 기능

ReSharper C++ 2024.2에서는 새로운 C+23 기능이 구현되고, 툴팁에 타입 레이아웃 정보가 보강되었으며, Rename(이름 변경) 리팩터링도 개선되었습니다. Unreal Engine 개발자를 위해 구조체 특성이 지원되며, 누락된 기본 메서드 호출을 탐지하는 새로운 검사가 추가됩니다.

다운로드

30일 무료 평가판 이용 가능

C++23 지원

ReSharper C++ 2024.2는 다차원 첨자 연산자를 지원합니다. operator[]를 여러 인수와 함께 활용하면 다차원 컨테이너와 뷰의 지원을 개선할 수 있습니다.

ReSharper C++가 이제 기존의 #ifdef#ifndef 지시문을 보완하는 #elifdef#elifndef C++23/C23 전처리기 지시문을 이해합니다.

[[assume(<expr>)]]은 C++23의 새로운 속성으로, 인수 식을 사용하여 추가적인 정보를 옵티마이저에 보내는 이식 가능한 방법을 제공합니다. ReSharper C++는 이 인수를 분석하고 그 내부에 일반적인 코드 인텔리전스 기능을 모두 지원합니다.

Unreal Engine

ReSharper C++가 이제 Unreal Engine의 구조체 특성을 인식합니다. 구조체 특성으로 어노테이션이 추가된 구조체에서 ReSharper C++는 필요한 메서드가 있는지 확인하고 누락된 경우 이를 생성합니다.

새로운 검사는 특히 BeginDestroyGetLifetimeReplicatedProps 메서드에서 누락된 기본 메서드 호출을 탐지합니다. 함께 제공되는 수정에서는 필요한 Super 호출을 삽입합니다.

또 다른 새로운 검사는 IOnlineSubsystem::Get()의 사용 위치를 플래그로 지정하고 Online::GetSubsystem(this->GetWorld())로 대체합니다.

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

타입 레이아웃

이제 빠른 정보 툴팁에 타입 레이아웃에 관한 정보가 포함됩니다. 간단히 클래스나 클래스 필드를 마우스로 가리키고 크기와 정렬을 확인해 보세요.

클래스 필드를 마우스로 가리키면, 객체의 시작 부분에 있는 필드의 오프셋과 필드 뒤에 추가되는 안쪽 여백을 추가적으로 확인할 수 있습니다.

이름 변경 개선 사항

ReSharper C++에서 파일의 이름을 변경할 때 관련 파일을 동일한 이름으로 변경할 수 있는 새로운 옵션이 제공됩니다. 예를 들어 헤더 파일의 이름을 변경하면, 헤더를 포함하는 .cpp 파일도 이름이 변경됩니다.

파일 내 타입의 이름을 새로운 파일 이름과 일치하도록 자동으로 변경하는 새로운 파일 이름 변경 옵션도 있습니다.

마지막으로 이름이 일치하는 네임스페이스의 이름을 파일 내에서 변경하려는 경우, 이를 포함하는 파일의 이름도 자동으로 변경하는 옵션도 사용할 수 있습니다.

코드 분석

번들로 제공되는 clang-tidy 바이너리를 Clang 18로 업그레이드하여 새로운 검사와 최신 LLVM 릴리스의 개선 사항을 적용했습니다.

2024.1 업데이트에 추가된 NOLINT 주석 지원과 유사하게 ReSharper C++에서 include-what-you-use pragmas를 인식하여 Possible unused #include directive(사용되지 않았을 수 있는 #include 지시문) 검사를 억제합니다.

소스 또는 타깃 타입이 char 또는 std::byte를 가리키는 포인터일 때 발생하는 변환 오류에서 reinterpret_cast를 사용하는 수정이 추가되었습니다.

기타

이제 검사 메뉴의 Why is ReSharper suggesting this?(ReSharper에서 이 항목을 제안하는 이유) 옵션이 코드 검사와 관련된 C++ Core Guidelines로 연결됩니다.

Base method call(기본 메서드 호출) 필터를 Find Results(결과 찾기) 창에서 사용하여 사용 위치 목록에서 기본 메서드 호출을 필터링할 수 있습니다.

ReSharper를 Visual Studio와 별도의 프로세스로 실행하여 성능을 개선하려는 지속적 노력의 일환으로, 비동기식 입력이 ReSharper C++에서 지원됩니다. 내부 테스트 결과에 따르면 비동기식 입력을 사용하면 입력 경험이 더 원활해집니다.

ReSharper C++에서는 코드를 편집할 때 발생하던 몇몇 중요 문제를 해결하고 성능을 개선하여 Visual Studio 내의 CMake 프로젝트와의 호환성이 개선되었습니다.

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

다운로드

30일 무료 평가판 이용 가능