Index: kernel/include/IMP/internal/AttributeTable.h =================================================================== --- kernel/include/IMP/internal/AttributeTable.h (revision 577) +++ kernel/include/IMP/internal/AttributeTable.h (working copy) @@ -85,17 +85,7 @@ } }; -struct ParticleAttributeTableTraits -{ - typedef internal::ObjectPointer Value; - typedef KeyBase Key; - static Value get_invalid() { - return Value(); - } - static bool get_is_valid(Value f) { - return f!= Value(); - } -}; +// The traits for the particle class are declared in the Particle.h /** \internal If memory becomes a problem then either use a char table to look up Index: kernel/include/IMP/Particle.h =================================================================== --- kernel/include/IMP/Particle.h (revision 577) +++ kernel/include/IMP/Particle.h (working copy) @@ -52,6 +52,22 @@ { friend class Model; + /* This has to be declared here since boost 1.35 wants the full + definition of Particle to be available when the ObjectPointer + is declared. + */ + struct ParticleAttributeTableTraits + { + typedef internal::ObjectPointer Value; + typedef KeyBase Key; + static Value get_invalid() { + return Value(); + } + static bool get_is_valid(Value f) { + return f!= Value(); + } + }; + typedef internal::AttributeTable FloatTable; typedef internal::AttributeTable @@ -62,7 +78,7 @@ IntTable; typedef internal::AttributeTable StringTable; - typedef internal::AttributeTable + typedef internal::AttributeTable ParticleTable; public: