It’s because you declare b
to be a pointer, and initialize it to be a null pointer. But a null pointer to what type of data you don’t say, so the compiler can’t deduce the type.
If you want b
to be a std::nullptr_t
object, you should drop the asterisk:
auto b{nullptr};