我正在将一个在Linux 3下编译的项目移植到RHEL 5.0上,因此使用的是gcc编译器版本4.1.1。在某一行代码中,我遇到了以下错误:
inline Tree<ExpressionOper< T > >::Node* getRootNode() const throw() { return m_rootPtr; }
请在顶部引用tree.h文件,其中包含一个类的模板声明:
template <typename T>
class Tree
{
public:
class Node
{
public:
Node ()
: _parent (NULL) {};
explicit Node (T t)
: _parent (NULL)
, _data (t) {};
Node (T t, Node* parent)
: _parent (parent)
, _data (t) {};
~Node()
{
for (int i = 0; i < num_children(); i++){
delete ( _children [ i ] );
}
};
inline T& data()
{
return ( _data);
};
inline int num_children() const
{
return ( _children.size() );
};
inline Node* child (int i)
{
return ( _children [ i ] );
};
inline Node* operator[](int i)
{
return ( _children [ i ] );
};
inline Node* parent()
{
return ( _parent);
};
inline void set_parent (Node* parent)
{
_parent = parent;
};
inline bool has_children() const
{
return ( num_children() > 0 );
};
void add_child (Node* child)
{
child -> set_parent ( this );
_children.push_back ( child );
};
private:
typedef std::vector <Node* > Children;
Children _children;
Node* _parent;
T _data;
};
非常感谢您的提前帮助。