# GCC 15의 새로운 C++ 기능들

> Clean Markdown view of GeekNews topic #20545. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20545](https://news.hada.io/topic?id=20545)
- GeekNews Markdown: [https://news.hada.io/topic/20545.md](https://news.hada.io/topic/20545.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-04-27T08:41:46+09:00
- Updated: 2025-04-27T08:41:46+09:00
- Original source: [developers.redhat.com](https://developers.redhat.com/articles/2025/04/24/new-c-features-gcc-15)
- Points: 4
- Comments: 0

## Topic Body

- GCC 15는 C++26 기능을 대거 추가했으며, 일부 C++23 기능도 개선했음  
- 주요 추가 기능은 **Pack Indexing**, **Variadic Friends**, **삭제 이유 명시**, **구조적 바인딩 조건문** 등  
- 새로운 컴파일러 옵션과 경고들도 도입되어 **개발자 경험**이 향상됨  
- C++ 모듈 지원이 강화되었고, 템플릿 컴파일 속도 최적화가 이루어졌음  
- GCC 15은 Fedora 42 기본 컴파일러로 채택되었고, 곧 Red Hat GCC Toolset에도 제공될 예정임  
  
---  
  
### GCC 15의 새로운 C++ 기능  
  
- [GCC 15.1은 2025년 4월 25일에 출시](https://gcc.gnu.org/gcc-15/) 되었으며, C++26 기능을 본격적으로 도입함  
- 여전히 기본 표준은 `gnu++17`이며, `-std=c++23`, `-std=c++26` 등으로 최신 기능 활성화 가능함  
- C++20, C++23, C++26 기능은 아직 **실험적(experimental)**임  
  
### C++26 주요 기능  
- # Pack Indexing  
  - Variadic Template 인자에서 특정 요소를 `pack...[N]` 문법으로 직접 접근할 수 있게 됨  
  - 반복 트릭 없이 깔끔하게 첫 번째 인자 등을 참조 가능함  
- # Structured Bindings 속성 지정  
  - 구조적 바인딩된 각각의 변수에 별도로 `[[attribute]]`를 적용할 수 있게 됨  
  - 예시로, 특정 바인딩 변수만 `[[deprecated]]` 처리 가능함  
- # 삭제 함수에 설명 추가  
  - `= delete("이유")` 문법으로 삭제된 함수의 호출 에러에 **메시지**를 제공할 수 있음  
- # Variadic Friends  
  - 템플릿 클래스에서 여러 타입을 한번에 `friend` 선언 가능함  
  - **Passkey 패턴**처럼 접근 제어 강화에 유용함  
- # constexpr Placement New  
  - `std::allocator`와 placement new를 constexpr 컨텍스트에서 사용할 수 있음  
- # 구조적 바인딩을 조건문에 사용  
  - `if`, `while`, `switch` 조건문 안에서 구조적 바인딩 선언 가능함  
  - 조건 판별은 컴파일러가 생성한 내부 변수에 의해 수행됨  
- # 불완전 타입 삭제 금지  
  - `delete`나 `delete[]`가 불완전 타입에 대해 사용될 경우, C++26 모드에서는 컴파일 에러 발생함  
- # 옥스포드 콤마 경고  
  - Variadic 함수 선언 시 `, ...` 없이 `...`만 사용하는 패턴을 C++26에서 경고 처리함  
- # 배열 비교 제거  
  - 배열끼리 `==` 비교하는 코드를 오류로 처리  
  - 기존 C++20에서는 경고였으나, 이제는 C++26 모드에서 컴파일 오류로 격상됨  
- # #embed 지시어  
  - 바이너리 데이터를 소스 코드에 직접 삽입할 수 있는 `#embed` 지원

## Comments



_No public comments on this page._
