I have a class defined like this:
class SomeObject
{
public:
...
virtual void Method();
...
private:
typedef boost::shared_ptr<AnotherObject> AnotherObjectPtr;
...
std::vector<AnotherObject> m_objects;
...
};
void SomeObject::Method()
{
...
BOOST_FOREACH(AnotherObjectPtr object, m_objects){
object->DoSomething();
}
}
The code compiles fine using Boost 1.39.0 on Mac OS X 10.5 (PowerPC).
However, when I compile the same code on Fedora 10 (Intel), I get
compile errors like:
.../boost_1_39_0/boost/foreach.hpp:221: error: expected
nested-name-specifier before ‘int’
.../boost_1_39_0/boost/foreach.hpp:221: error: two or more data types in
declaration of ‘parameter’
.../boost_1_39_0/boost/foreach.hpp:222: error: default template
arguments may not be used in function templates
.../SomeObject.cpp: In member function ‘virtual void SomeObject::Method()’:
.../SomeObject.cpp:110: error: no matching function for call to
‘not_(boost::is_array