class _Nullable Smart; void f1(int * _Nonnull); void f2(Smart); // OK, not required on smart-pointer types using Alias = Smart; void f3(Alias); template class _Nullable SmartTmpl; void f2(SmartTmpl); template void f2(SmartTmpl);