Tag
A detailed catalogue of C++ standard library features that have been formally deprecated, informally discouraged, or are effectively broken but cannot be fixed due to ABI constraints, spanning from C++11 to C++26. The article argues a consistent pattern of the C++ committee shipping replacements for its own features, including a benchmark showing 58x P99 latency difference between Rust and C++ standard library containers.
This article explains how to use Go's net/http/httptrace package to trace HTTP request phases (DNS, connection, TLS, etc.) via context-based hooks, and demonstrates building a CLI trace tool and a RoundTripper logger.
The article explores whether using bulk memmove in std::remove_if can improve performance over the traditional per-element move, and finds that it does not, due to overhead from bookkeeping and memmove's overlap check.
sp.h is a 15,000-line single-header C99 standard library that bypasses libc to provide portable, explicit, and heap-free primitives. It aims to replace the traditional libc with a modern, syscall-level abstraction.
The article criticizes C standard library functions for parsing integers (atol, strtol, strtoul, sscanf), explaining why most are broken and only strtol can be used correctly with careful error handling.
The article criticizes the new std::simd library in C++26, arguing it is slower than scalar loops, compiles slowly, and is outperformed by auto-vectorizers and alternative libraries like Google Highway, questioning its value after a decade-long standardization process.
C++26 is introducing standardized library hardening to catch common undefined behavior (like out-of-bounds access) at runtime, based on Google's production experience showing a mere 0.30% performance overhead and a 30% reduction in segmentation faults.