J'ai vu des réponses à ce sujet dans d'autres sujets sur Stack Overflow, mais je ne sais pas quoi faire dans mon cas. Je suis tout nouveau dans les modèles et c'est le premier modèle que j'ai créé/créé en utilisant des exemples trouvés sur ce site. Quoi qu'il en soit, voici le code ci-dessous et l'erreur associée:La classe de base doit être explicitement initialisée dans le constructeur de la copie.
warning: base class 'class std::allocator<char>' should be explicitly initialized in the copy constructor [-Wextra] SecureString(const SecureString &) throw() {}
template<class T> class SecureString : public std::allocator<T> {
public:
template<class U> struct rebind { typedef SecureString<U> other; };
SecureString() throw() {}
SecureString(const SecureString &) throw() {}
template <class U> SecureString(const SecureString<U>&) throw() {}
void deallocate(T *p, size_t n) {
#ifdef _WIN32
SecureZeroMemory((void *)p, n);
#elif __linux__
std::fill_n((volatile char *)p, (n * sizeof(T)), 0);
#endif
std::allocator<T>::deallocate(p, n);
}
};
Il y a plus d'erreurs, mais c'est le principal. J'apprends mieux des exemples, donc toute aide serait grandement appréciée, merci.
Merci, en fait j'ajouté le 'std :: allocateur (qui)' hier, mais je ne savais pas pourquoi il fixe l'erreur jusqu'à présent . Le lien est utile aussi :) –