Сообщение using for SFINAE от 02.03.2017 7:44
Изменено 02.03.2017 7:50 night beast
using for SFINAE
Сегодня в группе 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);
}
using for SFINAE
Сегодня в группе 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);
}