[Debian-med-packaging] (Further) help with C++ needed

Gert Wollny gw.fossdev at gmail.com
Thu Dec 12 18:43:34 UTC 2013


On Thu, 2013-12-12 at 19:11 +0100, Andreas Tille wrote:
>                       ^
> /tmp/buildd/ball-1.4.2/include/BALL/COMMON/logStream.h:165:22: note: attribute for 'struct BALL::LogStreamBuf::StreamStruct' must follow the 'struct' keyword
> /tmp/buildd/ball-1.4.2/source/FORMAT/PDBFileDetails.C: In member function 'virtual bool BALL::PDBFile::interpretRecord(const BALL::PDB::RecordMTRIX3&)':
> /tmp/buildd/ball-1.4.2/source/FORMAT/PDBFileDetails.C:902:71: error: no matching function for call to 'BALL::NamedProperty::NamedProperty(const char [12], boost::shared_ptr<BALL::CrystalInfo>&)'
>     current_protein_->setProperty(NamedProperty("CRYSTALINFO", temp_ptr));

temp_ptr is of type "boost::shared_ptr<CrystalInfo>", but the only
NamedProperty constructor that comes close is the one that accepts
"boost::shared_ptr<PersistentObject>". 

Since these are different types, the constructor can not be used. I can
only guess that at one point the boost::shared_ptr implementation
supported this kind of automatic casting of the contained class
pointers, otherwise the code could never have compiled.

To solve this: 

Since CrystalInfo is a derived from PersistentObject, you can replace
the line /PDBFileDetails.C:901 by 

   boost::shared_ptr<PersistentObject> temp_ptr(new CrystalInfo());


Hope that helps, 
Gert 








More information about the Debian-med-packaging mailing list