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