Trawling

최신기사

AI, 개발 도구, 오픈소스, 보안과 인프라의 변화와 이용 조건을 설명하는 최신 기사와 해설입니다.

발행

Herb Sutter, C++26 표준안 부결의 핵심 원인으로 Stroustrup 반대 지목

Herb Sutter는 WG21의 C++26 Contracts 합의보다 Bjarne Stroustrup의 반대가 ISO 국가 회원기구 표결에서 더 큰 무게를 얻어 DIS 부결로 이어졌다고 분석합니다. 그는 반대 로비가 반대한 국가 회원기구 수를 두 배 이상 늘렸다고 주장하며, C++29 논의에서는 우려를 확인할 구현·배포 결과를 측정 가능한 기준으로 미리 정하자고 제안합니다.

발행

Contracts 우려 속 C++26 DIS 표결 부결…후속 경로는 미정

2026년 10월 23일 C++26 국제표준안은 DIS 표결에서 필요한 3분의 2 찬성을 얻지 못해 국제표준으로 출판되지 못했습니다. WG21 위원 Andreas Fertig는 개인 블로그에서 여러 국가기구가 함수의 사전·사후 조건 등을 코드에 적는 Contracts 기능을 표준에 넣기에는 준비가 덜 됐다고 봤다고 전했습니다. 수정안 재표결·위원회 단계 회귀·기술 명세 발행·취소가 후속 경로로 남았지만, 모두 WG21의 다수 지지를 필요로 하고 차기 표준 일정도 늦어질 것이라고 그는 설명했습니다.

발행

C++ 임시 문자열 수명 오류, 최적화 뒤 권한 판정 결과 뒤집혀

Ted Kim의 C++ 예제는 임시 `std::string`의 데이터를 가리키는 `std::string_view`를 원본이 사라진 뒤 비교해 미정의 동작을 일으킵니다. 작성자의 Clang 19·GCC 14 실행에서는 `-O0`의 `false`가 `-O2`에서 `true`로 바뀌며, 글은 이를 실제 서비스 사례가 아닌 재현용 코드로 다룹니다.

발행

컴파일 때 충돌을 없앤 C++ 조회표, M4에서 초당 10억 회 넘게 찾는다

키가 컴파일 시점에 정해지는 문자열 조회라면 완전 해싱으로 실행 중 충돌 처리와 동적 해시 테이블의 비용을 줄일 수 있습니다. 제안된 라이브러리는 Apple M4에서 URL 프로토콜 6개를 조회해 초당 10억 회를 넘겼지만, 짧은 문자열의 SIMD 로드가 객체 범위를 넘는 문제는 페이지 경계 검사만으로 해결되지 않습니다.

발행

UB는 괜찮다고 생각하는 사람들에게

C++의 정의되지 않은 동작(Undefined Behavior, UB)은 단순히 실행 결과를 예측하기 어렵다는 뜻이 아닙니다. GCC와 Clang의 어셈블리 예제로 UB가 함수의 명령어를 없애거나 예상 밖의 메모리 쓰기와 충돌로 이어질 수 있음을 보여주고, 댓글에서는 그 사례의 범위와 실용적인 대응을 두고 논쟁합니다.

발행

C++26 표결 완료, 부결됐습니다

C++26 국제 표준안이 회원국 표결에서 부결됐습니다. 찬성률은 정회원 투표 기준에 못 미쳤고 반대표 비율은 허용치를 넘었습니다. Lobsters 댓글에서는 계약(contracts) 기능을 둘러싼 이견이 원인으로 거론되지만, 이후 절차는 불확실하다는 의견이 나옵니다.

발행

불필요하게 보안성이 높은 해시를 바꿔 Unreal Editor 가속하기

Unreal Editor가 셰이더 소스 코드에 쓰던 SHA-1 해시를 xxHash로 바꾸자, 해시 처리에 든 CPU 시간이 12.90초에서 1.59초로 줄었습니다. 저자는 Electric Dreams 샘플 프로젝트를 각 버전에서 다섯 번씩 실행해 비교했고, 변경 사항은 Epic의 검토를 거쳐 수락됐지만 당시 아직 병합 전이었습니다.

발행

true의 비트 보수는 true입니다, false가 되는 경우만 빼면

C++의 정수 승격과 enum 변환 규칙이 비트 연산에서 일으키는 까다로운 사례를 살펴봅니다. bool의 비트 보수와 열거형 변환에서 GCC·Clang·MSVC가 표준과 다르게 동작하는 사례, 고정 기반형이 없는 enum에 생기는 정의되지 않은 동작을 짚습니다.

발행

EDG C++ 프런트엔드 공개

EDG가 2026년 9월 30일 C++ 프런트엔드 소스 코드를 공개하고, C++ Alliance를 비영리 운영 거점으로 삼았습니다. 사용자 기여, 유지보수, 공동 자금 조달 기능을 하나의 공개 저장소에서 관리하며, 여러 상용 컴파일러와 개발 도구에 쓰인 오랜 C++ 구현을 누구나 이용하고 개선할 수 있게 됐습니다.

발행

효율적인 C++ 코드 작성법

2013년에 작성된 C++ 성능 최적화 글입니다. 포인터로 흩어진 객체보다 연속된 메모리와 데이터 접근 패턴을 우선하고, 캐시 지역성·AOS와 SOA·할당 재사용·포인터 별칭을 이해하라고 설명합니다. Hacker News에서는 조언의 여전한 유효성과 현대 C++의 변화, 최적화가 필요한 영역을 두고 의견이 갈렸습니다.

발행

락프리 링 버퍼 최적화

단일 생산자·단일 소비자(SPSC) 링 버퍼를 단순 배열에서 시작해 뮤텍스, 원자 연산, 메모리 순서 조정, 인덱스 캐시 순으로 개선합니다. 제시된 벤치마크에서 처리량은 뮤텍스 버전의 초당 1,200만 회에서 최적화 버전의 3억 500만 회로 늘어납니다.

발행

C++20의 u8/char8_t 하위 호환성 참사

C++20에서는 UTF-8 문자열 리터럴인 u8"..."의 원소 타입이 기존 const char에서 const char8_t로 바뀌었습니다. 그 결과 C++17에서 정상적으로 컴파일되던 코드가 const char*를 요구하는 기존 API 호출에서 깨질 수 있으며, Google C++ Style Guide도 가능한 경우 u8 접두사를 피하라고 권고합니다.