|
// Analogue of std::forward_like from c++23. |
|
template <typename TOwner, typename TMember> |
|
decltype(auto) ForwardLike(TMember& member) { |
|
if constexpr (std::is_lvalue_reference_v<TOwner> || std::is_lvalue_reference_v<TMember>) { |
|
return member; |
|
} else { |
|
return std::move(member); |
|
} |
|
} |
|
// Analogue of std::forward_like from c++23. |
|
template <typename TOwner, typename TMember> |
|
decltype(auto) ForwardLike(const TMember& member) { |
|
return member; |
|
} |
Данная реализация не является точным аналогом std::forward_like. Нужно либо привести правильную реализацию, либо отобразить факт различия в названии и/или описании.
userver/universal/include/userver/utils/forward_like.hpp
Lines 13 to 21 in 525eba6
userver/universal/include/userver/utils/forward_like.hpp
Lines 23 to 27 in 525eba6
Данная реализация не является точным аналогом
std::forward_like. Нужно либо привести правильную реализацию, либо отобразить факт различия в названии и/или описании.