using for SFINAE
От: night beast СССР  
Дата: 02.03.17 07:44
Оценка: 135 (8)
Сегодня в группе std-proposals наткнулся на интересное применение using для SFINAE.
Раньше не задумывался о такой возможности. Возможно кому-нибудь еще пригодится:

template<class T, std::enable_if_t<!std::is_reference<T>::value, bool> = true>
using rval = T;

template<class T>
void f(rval<T>&&)
{
    std::cout << "rvalue_reference\n";
}

template<class T>
void f(T&)
{
    std::cout << "lvalue_reference\n";
}


int main()
{
    int i = 0;
    f(0);
    f(i);
}
Отредактировано 02.03.2017 7:50 night beast . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.