absl::compare — three-way 비교
absl::weak_ordering, strong_ordering, partial_ordering — C++20 spaceship의 polyfill과 비교 helper.
219개의 포스트 · 2/10 페이지
absl::weak_ordering, strong_ordering, partial_ordering — C++20 spaceship의 polyfill과 비교 helper.
absl::any — 임의 타입을 담는 type-erased 컨테이너. variant와 언제 어떻게 다른가.
absl::Span — 연속 메모리의 non-owning view. std::span의 친척이자 더 일찍 도착한 polyfill.
absl::variant — std::variant의 polyfill. 타입-안전 union과 visitor 패턴.
absl::optional — std::optional이 도착하기 전 시기의 polyfill. 지금은 std::optional의 alias로 동작.
absl::popcount, countl_zero, countr_zero — C++20 <bit>의 polyfill. SwissTable·해시·정수 압축의 핵심 primitive.
absl::int128, uint128 — 64비트로 부족한 곳을 메우는 128비트 정수. 컴파일러 builtin과 emulation 양쪽을 가린 ABI.
BitGen 시드 관리 — OS entropy, SeedSeq, 결정적 재현성. 그리고 보안 한계.
MockingBitGen — 분포 호출의 결과값을 결정적으로 강제. flaky random 테스트를 끝낸다.
absl::Uniform, Gaussian, Exponential, Poisson 등 — std::*_distribution의 클래스 객체를 함수 호출로 평탄화.
absl::BitGen — std::mt19937 + std::uniform_int_distribution의 길고 verbose한 조합을 단일 호출로 압축한 random engine.
테스트에서 절대 시간을 통제하기 — clock 주입 패턴과 absl::Now() 대체 전략.
absl::TimeZone — IANA TZ database 위에 얹은 안전한 변환 layer. UTC가 아닌 시각을 다루는 모든 코드가 거쳐야 할 관문.
absl::CivilDay와 가족들 — 시간대 없는 달력 산술. 윤년·월말을 직접 처리할 필요가 없게 한다.
FormatTime, ParseTime — Abseil이 strftime/RFC3339를 한 함수로 흡수하는 방법.
absl::Time과 absl::Duration — std::chrono의 위에 한 겹을 더 씌워 단위 혼동과 부호 오류를 컴파일러가 잡아내게 만든 layer.
Part 6-05: ABSL_GUARDED_BY, ABSL_LOCKS_EXCLUDED, ABSL_EXCLUSIVE_LOCKS_REQUIRED — clang -Wthread-safety와 결합해 lock 누락을 정적 검출.
Part 6-04: absl::BlockingCounter와 absl::Barrier — N개 작업 완료 대기, N개 thread 동기 합류, fanout-fanin 패턴.
Part 6-03: absl::Notification — 한 번만 발생하는 이벤트를 위한 가벼운 signal primitive. atomic flag보다 안전, condition variable보다 단순.
Part 6-02: Mutex::Await로 함수형 condition을 정의해 condition_variable, notify, spurious wakeup 관용구를 모두 제거.
Part 6-01: absl::Mutex — std::mutex/shared_mutex 통합, contention profiler, deadlock 검출, fairness 정책.
Part 5-07: Swiss Table 내부 — H1/H2 해시 분할, control byte 그룹, SSE2/SSE3/NEON SIMD probing, tombstone 처리.
Part 5-06: absl::InlinedVector — std::vector + 작으면 stack, 커지면 heap. SBO 패턴의 표준 도구.
Part 5-05: absl::FixedArray — 런타임 결정 크기지만 작으면 stack, 크면 heap. VLA의 안전한 대체.