специализация для rvalue ссылок
От: sergii.p  
Дата: 21.08.20 14:07
Оценка:
всем привет. Что-то совсем запутался.

#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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.