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