frenchtoucco | bonjour,
J'ai un problème avec le code suivant.
Cette classe template, a un pointeur sur la classe elle même, mais avec des paramètres template différent, le problème est que je ne parviens pas à initialiser correctement cette variable.
Code :
- template<typename T,template <typename,typename> class A>
- struct B
- {
- typedef A<T,std::allocator<T> > container;
- typedef const T constdata_type;
- typedef typename container::const_iterator constIterator;
- template<typename U,template <typename,typename> class Z>
- void InitBstar()
- {
- b = new B<U,Z>();
- }
- B(void);
- void print() const;
- template<typename U>
- void inserer(const U &first,...);
- private:
- container m_;
- B * b;
- template<typename U>
- void ajouter(const U& val);
- };
|
Le compilateur ne veut pas de cette ligne : b = new B<U,Z>();
error C2440: '=' : impossible de convertir de 'B<T,A> *' en 'B<T,A> *'
Quelqu'un voit le problème ?
Merci ---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
|