2009-08-16 5 views
1

Pour une raison quelconque, je ne peux pas obtenir ptr_list pour insérer des éléments.Insertion du conteneur du pointeur de surimpression (ptr_list)

boost::ptr_list<int> somelist; 
int *someint = new int(123); 
int *someint2 = new int(456); 
somelist.push_back(someint); 
boost:: ptr_list<int>::iterator i = somelist.begin(); 

somelist.insert(i,someint2); 

De l'aide, s'il vous plaît?

+0

Vous snippet compile très bien pour moi. Quel est le message d'erreur? – avakar

+0

pourriez-vous, s'il vous plaît, dire quels en-têtes avez-vous inclus? Impossible de trouver une correspondance pour 'boost :: ptr_sequence_adapter >, boost :: heap_clone_allocator> :: insert (boost :: void_ptr_iterator <_STL: : _List_iterator >, int>, int *) ' – Andrew

+0

bien, je suppose que c'est un problème spécifique d'un ancien compilateur que j'utilise (borland C++ builder 6). Télécharger maintenant une nouvelle version pour vérifier si elle résout mon problème. – Andrew

Répondre

2

Une mise à jour. Après avoir passé encore 24 heures sur ce sujet, j'ai découvert que Borland C++ Builder 6 (très ancien 2002) est plus compatible avec boost 1.39 qu'un C++ Builder 2009 neuf.
Mais ni l'un ni l'autre ne semble aimer les conteneurs pointeurs.

En ce moment je regrette de n'avoir pas démarré ce projet en MSVC mais c'est ce que j'ai.

Donc, si quelqu'un sait comment utiliser les conteneurs de pointeurs avec C++ Builder, veuillez partager cette information. Pour moi, cette question n'est toujours pas résolue.

rétablissait à std::list<boost::shared_pointer>

+0

une mise à jour. La nouvelle version de boost dans le tronc SVN semble avoir beaucoup de corrections pour Borland et donne accès à plus de composants mais toujours des erreurs avec les conteneurs de pointeurs. – Andrew

Questions connexes