30 using type = std::remove_cvref_t<T>;
32 [[nodiscard]]
constexpr T &&operator()(std::remove_reference_t<T> &t)
const noexcept
34 return static_cast<T &&
>(t);
37 [[nodiscard]]
constexpr T &&operator()(std::remove_reference_t<T> &&t)
const noexcept
39 static_assert(!std::is_lvalue_reference_v<T>,
"Can not forward an rvalue as an lvalue.");
40 return static_cast<T &&
>(t);