1

Salut,
j'ai récupéré un bout de code qui implémente un vecteur un peu spécial et, hélas, ça ne compile pas en l'état.

À un moment dans le .h, il est question de reverse_iterator à deux paramètres, or mon compilateur me dit qu'il n'a rien qui corresponde (il n'accepte qu'un seul paramètre)

template <class T> class automation_vector : public automation_vector_base
{
   //[...]
public:
   //[...]
   // iterators 
   typedef T* iterator;
   typedef const T* const_iterator;
   typedef std::reverse_iterator<iterator, T> reverse_iterator;//<- un problème
   typedef std::reverse_iterator<const_iterator, T> const_reverse_iterator;//<- le même problème


Une idée ?
Vu l'ancienneté du code, il y a peut-être un truc à adapter, mais mon expérience du C++ est limitée tout ça #triange#

Merci d'avance happy

PS : le bout de code, c'est ça pour les curieux :
http://erdani.com/publications/adapting_automation_arrays.html
http://erdani.com/publications/adapting_automation_arrays.zip

2

Vu de loin, j'aurais tendance à vouloir écrire :
   typedef std::reverse_iterator<iterator> reverse_iterator;
   typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
mais je trouve ça byzarre© quand même.

3

4

Pen^2 (./1) :
PS : le bout de code, c'est ça pour les curieux :
http://erdani.com/publications/adapting_automation_arrays.html
http://erdani.com/publications/adapting_automation_arrays.zip


Bon, en fait l'utilité de ce wrapper a l'air discutable : avant de partir j'ai réussi à m'en passer via CComSafeArray et le code est finalement très proche. Peut-être que CComSafeArray n'existait pas à l'époque de VS6. Ou qu'un détail m'a échappé cheeky