всем привет. Что-то совсем запутался.
#include <iostream>
#include <vector>
using namespace std;
template<typename Collection>
std::enable_if_t<
!std::is_rvalue_reference_v<Collection>,
void
>
operator|(const Collection& col, int)
{
cout<<"lvalue\n";
}
template<typename Collection>
std::enable_if_t<
std::is_rvalue_reference_v<Collection>,
void
>
operator|(Collection&& col, int)
{
cout<<"rvalue\n";
}
int main()
{
std::vector<int> v;
v | 1;
std::move(v) | 1;
return 0;
}
выдаёт
lvalue
lvalue
а хочу чтобы выводило
lvalue
rvalue
Как сия магия записывается?
https://www.onlinegdb.com/SySG486fP