Есть ли способ в C ++ определить, является ли тип переменной указателем или любым итератором с перегруженным operator*
?
Существует стандартный std::is_pointer
, но он ничего не говорит об итераторах.
Я хочу использовать его в таком коде:
template<class T>
void func(T var)
{
if constexpr (can_be_dereferenced<T>::value)
{
// do something with *var;
}
}