There are two different, incompatible ways of defining friends of templates. Unfortunatly the IRIX mips (and visual c++?) compilers uses the old one, and gcc uses the new stanard. Hence the need for this define. Hopefully as they update the compilers it will go away.....
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What is the idea of defining
friend class DListBodyC<DataT>;
#if RAVL_NEW_ANSI_CXX_DRAFT
friend ostream &operator<< <DataT>(ostream &strm,const DListBodyC<DataT> &lst);
friend BinOStreamC &operator<< <DataT>(BinOStreamC &strm,const DListBodyC<DataT> &lst);
#else
friend ostream &operator<<(ostream &strm,const DListBodyC<DataT> &lst);
friend BinOStreamC &operator<<(BinOStreamC &strm,const DListBodyC<DataT> &lst);
#endif
in DLiterC class?
There are two different, incompatible ways of defining friends of templates. Unfortunatly the IRIX mips (and visual c++?) compilers uses the old one, and gcc uses the new stanard. Hence the need for this define. Hopefully as they update the compilers it will go away.....
The question was: Is it necessary to to define the friends at all? Which function uses protected or private members of DLIterC?