Two questions: - Why does `not_null` take a pointer type instead of a non-pointer type like span, unique_ptr and shared_ptr. That is: ``` auto safe_ptr = gsl::not_null<int *>(ptr) // Currently auto safe_ptr = gsl::not_null<int>(ptr) // Why not this? ``` - Is there a reason there is no constructor for unique_ptr / shared_ptr instead of having to use get()?