/* Special partial class templates
* Some constraints exist for the parameter list and real parameter list of the localized Special Declaration. The following are some important constraints:
* 1. The parameters of the basic template must be used for the locally-specific real parameters to match the type (the type, non-type, or template can be used ).
* 2. The local special parameter list cannot have default real parameters. However, the default real parameters of the basic class template can still be used for local special parameters.
* 3. The local special non-type real parameter can only be a non-type value or a common non-type parameter, rather than a more complex dependent expression.
* 4. The Localized Real parameters of the template cannot be the same as the real parameters list of the basic template (rename the template is not considered)
* The following constraints are described in detail:
*/
Template <typename T, int I = 3>
Class S;
Template <typename T>
Class S <int, T>; // error, parameter Type Mismatch
Template <typename T = int>
Class S <t, 10>; // error, cannot have default parameters
Template <int I>
Class S <int, I * 2>; // error, cannot have more complex dependent expressions
Template <typename U, int K>
Class S <u, k>; // error, there is no difference between local features and basic templates