Implementing generic C++ code can be tricky, as any operation can potentially throw.
Notably, when a strong exception guarantee is required, this can significantly complicate code and lead to runtime overhead (or even a change in big-O complexity).
Fortunately, C++20 concepts can be used to enforce `noexcept` guarantees at compile-time.
Compiler Explorer link: https://compiler-explorer.com/z/dTxT3bshM