J'essaie de mettre en œuvre une version sûre de STD :: Shared_Ptr, appelée "Safe_Ptr" qui garantit "non-nullness".
Edit: Suppression de la question. Voir Modifier si vous êtes intéressé. Afficher la solution finale à toute personne intéressée: P>
Ce code est maintenant hébergé sur code Google . p>
4 Réponses :
Je pense que vous utilisez is_convertible code> Backwarks. Essayez
Belle prise ... Cependant maintenant, j'ai un nouveau problème ... s'il vous plaît voir Modifier.
@ronag: Oui, c'est un problème d'accessibilité, qu'une déclaration d'ami va résoudre. Matthieu a donné un exemple dans sa réponse.
Vous avez les arguments à concernant votre édition: oui, vous avez besoin d'une déclaration d'ami P> is_convertibles code> en arrière. Vous voulez vérifier
y * code> à
t * code> qui est exprimé comme:
// Within the body of the class
template <typename> friend class safe_ptr; // the syntax is peculiar...
Pour l'accès de membre privé Implex _ code>, vous devez être d'amitié d'amie différentes instanciations du modèle
Safe_Ptr code>.
template <class Y> friend class safe_ptr;
template<class Y> friend class safe_ptr;
+1 beau travail. Vous libérez cela sous une licence?
Je suppose que ce serait sous licence publique générale GNU 3 ou plus. J'apprécierais également un courrier si vous l'utilisez dans un projet.