Я узнал об использовании enable_if
и наткнулся на следующий код.
template <class T,
typename std::enable_if<std::is_integral<T>::value,
T>::type* = nullptr>
void do_stuff(T& t) {
std::cout << "do_stuff integral\n";
// an implementation for integral types (int, char, unsigned, etc.)
}
Меня беспокоит то, что в параметре шаблона nullptr используется как параметр по умолчанию для std::enable_if<std::is_integral<T>::value, T>::type*
, который также является типом.
Я не уверен, как мы можем назначить литерал для типа. Разве это не должно быть nullptr_t
вместо этого?