/// Whether this parameter pack is a pack expansion.
/// <para>A template template parameter pack is a pack expansion if its template parameter list contains an unexpanded parameter pack.</para>
/// </summary>
publicboolIsPackExpansion{get;set;}
/// <summary>
/// Whether this parameter is a template template parameter pack that has a known list of different template parameter lists at different positions.
/// A parameter pack is an expanded parameter pack when the original parameter pack's template parameter list was itself a pack expansion, and that expansion has already been expanded. For exampe, given:
/// The parameter pack Templates is a pack expansion, which expands the pack Types.When Types is supplied with template arguments by instantiating Outer, the instantiation of Templates is an expanded parameter pack.
/// Get the nesting depth of the template parameter.
/// </summary>
publicuintDepth{get;set;}
/// <summary>
/// Get the index of the template parameter within its parameter list.
/// </summary>
publicuintIndex{get;set;}
/// <summary>
/// Whether this parameter is a non-type template parameter pack.
/// <para>
/// If the parameter is a parameter pack, the type may be a PackExpansionType.In the following example, the Dims parameter is a parameter pack (whose type is 'unsigned').