Ad esempio, desidero utilizzare il tipo T
solo se è std::is_pointer<T>
e std::is_const<T>
.C++ come combinare le condizioni da tipo_traits modo standard
Naturalmente, non c'è modo semplice come questo:
template <typename T>
void f(T t, std::true_type, std::true_type) {}
template <typename T>
void f(T t)
{
f(t, std::is_pointer<T>{}, std::is_const<T>{});
}
Ma io voglio qualcosa di simile:
template <typename T>
void f(T t, std::true_type) {}
template <typename T>
void f(T t)
{
f(t, std::and<std::is_pointer<T>, std::is_const<T>>{});
}
è in C++ classi standard qualcosa come std::and
? Se no, c'è un modo semplice per implementarlo, con la funzionalità desiderata?