RM
Size: a a a
RM
RM
RM
RM
template <typename T>
void foo(T&&) {}
RM
AB
template <typename T>
void foo(T&&) {}
RM
b
AB
foo(4); // 1
int a; foo(a); // 2
foo(move(a)); // 3
int& b = f(); foo(b); // 4
const int& c = g(); foo(c) // 5
auto&& d = 4; foo(d); // 6
foo(move(d)); // 7
AB
RM
foo(4); // 1
int a; foo(a); // 2
foo(move(a)); // 3
int& b = f(); foo(b); // 4
const int& c = g(); foo(c) // 5
auto&& d = 4; foo(d); // 6
foo(move(d)); // 7
AB
AB
RM
AB
AB
static_assert(is_same_v<T, тип>);
чтобы выполнялось, если так понятнееRM
AB
AB
RM