?? is the null-coalescing operator. It can't be applied to non-nullable types. Since T can be anything, it can be an int or other primitive, non-nullable type.
If you add the condition where T : class (must be specified before new()) it forces T to be a class instance, which is nullable.