Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 1) C4544

"deklaracja": domyślny argument szablonu ignorowany w tej deklaracji szablonu

Domyślny argument szablonu został określony w nieprawidłowej lokalizacji i został zignorowany. Domyślny argument szablonu dla szablonu klasy można określić tylko w deklaracji lub definicji szablonu klasy, a nie w składowej szablonu klasy.

Ten przykład generuje kod C4545, a w następnym przykładzie pokazano, jak rozwiązać ten problem:

// 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

W tym przykładzie domyślny parametr ma zastosowanie do szablonu Sklasy :

// 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 {};