2010-04-05 3 views
4

Je reçois une erreur de compilation, en disant que le constructeur de copie du scoped_ptr est privé avec le code suivant:Révéler boost :: scoped_ptr en boost :: python

class a {}; 

struct s 
{ 
    boost::scoped_ptr<a> p; 
}; 

BOOST_PYTHON_MODULE(module) 
{ 
    class_<s>("s"); 
} 

Cet exemple fonctionne avec un shared_ptr bien . Ce serait bien, si quelqu'un connaît la réponse. Merci

Répondre

6

La sémantique de boost::scoped_ptr interdit de prendre des copies, alors que shared_ptr est destinée à être copiée. L'erreur que vous obtenez est le compilateur vous disant qu'une partie du code (macro expansion?) Essaie de copier le scoped_ptr mais que la bibliothèque ne permet pas la copie.

Questions connexes