userver
C++ Async Framework
Loading...
Searching...
No Matches
forward_like.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/utils/forward_like.hpp
4
/// @brief @copybrief utils::ForwardLike
5
6
#
include
<
type_traits
>
7
#
include
<
utility
>
8
9
USERVER_NAMESPACE_BEGIN
10
11
namespace
utils
{
12
13
// Analogue of std::forward_like from c++23.
14
template
<
typename
TOwner,
typename
TMember>
15
decltype
(
auto
) ForwardLike(TMember& member) {
16
if
constexpr
(std::is_lvalue_reference_v<TOwner> || std::is_lvalue_reference_v<TMember>) {
17
return
member;
18
}
else
{
19
return
std::move(member);
20
}
21
}
22
23
// Analogue of std::forward_like from c++23.
24
template
<
typename
TOwner,
typename
TMember>
25
decltype
(
auto
) ForwardLike(
const
TMember& member) {
26
return
member;
27
}
28
29
}
// namespace utils
30
31
USERVER_NAMESPACE_END
userver
utils
forward_like.hpp
Generated on Thu Apr 16 2026 13:37:08 for userver by
Doxygen
1.13.2