From f33dd5127fc066f15537c5d05ce9147596bb9efd Mon Sep 17 00:00:00 2001 From: Hong Xu Date: Wed, 3 Dec 2025 12:08:43 -0800 Subject: [PATCH] C.183: Mention bit_cast as a C++20+ solution (#2293) * C.183: Mention bit_cast as a C++20+ solution * Remove last line The change looks good, just removing the last line as it's more documentation than guidance --------- Co-authored-by: Herb Sutter --- CppCoreGuidelines.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index 5e5dfb2..b70b864 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -9032,7 +9032,9 @@ but at least we can see that something tricky is going on.) Unfortunately, `union`s are commonly used for type punning. We don't consider "sometimes, it works as expected" a conclusive argument. -C++17 introduced a distinct type `std::byte` to facilitate operations on raw object representation. Use that type instead of `unsigned char` or `char` for these operations. +Modern C++ introduced `std::byte` (C++17) and `std::bit_cast` (C++20) to facilitate operations on raw object representations. +Use `reinterpret_cast` along with `std::byte` instead of `unsigned char` or `char` for these operations. + ##### Enforcement