Compiler Warning (level 1) C4544
'deklarasi': Argumen templat default diabaikan pada deklarasi templat ini
Argumen templat default ditentukan di lokasi yang salah dan diabaikan. Argumen templat default untuk templat kelas hanya dapat ditentukan dalam deklarasi atau definisi templat kelas dan bukan pada anggota templat kelas.
Sampel ini menghasilkan C4545, dan sampel berikutnya menunjukkan cara memperbaikinya:
// 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
Dalam contoh ini, parameter default berlaku untuk templat S
kelas :
// 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 {};