Avviso del compilatore (livello 1) C4544

'declaration': argomento di modello predefinito ignorato in questa dichiarazione di modello

Un argomento di modello predefinito è stato specificato in un percorso non corretto ed è stato ignorato. Un argomento di modello predefinito per un modello di classe può essere specificato solo nella dichiarazione o nella definizione del modello di classe e non in un membro del modello di classe.

Questo esempio genera l'errore C4545 e l'esempio successivo mostra come correggerlo:

// C4544.cpp
// compile with: /W1 /LD
template <class T>
struct S
{
   template <class T1>
      struct S1;
   void f();
};

template <class T=int>
template <class T1>
struct S<T>::S1 {};   // C4544

In questo esempio, il parametro predefinito si applica al modello di classe S:

// C4544b.cpp
// compile with: /LD
template <class T = int>
struct S
{
   template <class T1>
      struct S1;
   void f();
};

template <class T>
template <class T1>
struct S<T>::S1 {};