From 03c19e91e8d8cb706b58e02d69f80caeaf7eb0f4 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 22 Jan 2024 06:57:45 +0200 Subject: [libc++][numeric] P0543R3: Saturation arithmetic (#77967) Implements: https://wg21.link/P0543R3 - https://eel.is/c++draft/numeric.sat Additional references: - Division: https://eel.is/c++draft/expr.mul#4 - Arithmetic conversions: https://eel.is/c++draft/expr.arith.conv#1 - Clang builtins: https://clang.llvm.org/docs/LanguageExtensions.html#builtin-functions Depends on: https://github.com/llvm/llvm-project/pull/78086 --------- Co-authored-by: Zingam Co-authored-by: Mark de Wever --- libcxx/modules/std/numeric.inc | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'libcxx/modules/std') diff --git a/libcxx/modules/std/numeric.inc b/libcxx/modules/std/numeric.inc index d2b7688..3bc7b23 100644 --- a/libcxx/modules/std/numeric.inc +++ b/libcxx/modules/std/numeric.inc @@ -54,4 +54,14 @@ export namespace std { // [numeric.ops.midpoint], midpoint using std::midpoint; + +#if _LIBCPP_STD_VER >= 26 + // [numeric.sat], saturation arithmetic + using std::add_sat; + using std::div_sat; + using std::mul_sat; + using std::saturate_cast; + using std::sub_sat; +#endif + } // namespace std -- cgit v1.1