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};