Bagikan melalui


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 Skelas :

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