From 70a5bb451c46329355fa5fdeb28c6e565d4242c8 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 10 Apr 2025 16:14:34 +0200 Subject: Core/Misc: Port C++23 std::forward_like --- src/common/Utilities/advstd.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src') diff --git a/src/common/Utilities/advstd.h b/src/common/Utilities/advstd.h index c09c47ddd4b..810346ddeef 100644 --- a/src/common/Utilities/advstd.h +++ b/src/common/Utilities/advstd.h @@ -52,6 +52,26 @@ template +namespace advstd +{ +using std::forward_like; +} +#else +namespace advstd +{ +template +[[nodiscard]] constexpr decltype(auto) forward_like(U&& value) noexcept +{ + using ValueU = std::remove_reference_t; + using ValueConstU = std::conditional_t>, ValueU const, ValueU>; + return static_cast, ValueConstU&&, ValueConstU&>>(value); +} +} +#endif + // std::ranges::contains #include #ifndef __cpp_lib_ranges_contains -- cgit v1.2.3