Brian Neal wrote:
Hi -
We used the ptr_container library under gcc and Linux. We are now porting our software to the Integrity OS and the Green Hills Multi C++ compiler. This compiler has the EDG front end. It cannot compile reversible_ptr_container.hpp.
I had to change this:
class reversible_ptr_container { private: BOOST_STATIC_CONSTANT( bool, allow_null = Config::allow_null );
typedef BOOST_DEDUCED_TYPENAME Config::value_type Ty_;
To this:
class reversible_ptr_container { public: typedef BOOST_DEDUCED_TYPENAME Config::value_type Ty_; private: BOOST_STATIC_CONSTANT( bool, allow_null = Config::allow_null );
The compiler complains that the typedef Ty_ is private, but it is used in the public part of the class where it should not be accessible.
Huh?
I believe, but am not completely sure, that technically the compiler is correct. We have noticed that this EDG front end is very picky (in a good way).
Private doesn't mean that the class's own functions can't use it. In what context does the compiler complain? Thanks -Thorsten