15 #ifndef BELUGA_UTILITY_FORWARD_LIKE_HPP
16 #define BELUGA_UTILITY_FORWARD_LIKE_HPP
32 template <
class T,
class U>
34 constexpr
bool is_adding_const = std::is_const_v<std::remove_reference_t<T>>;
35 if constexpr (std::is_lvalue_reference_v<T&&>) {
36 if constexpr (is_adding_const) {
37 return std::as_const(value);
42 if constexpr (is_adding_const) {
43 return std::move(std::as_const(value));
45 return std::forward<U>(value);