[Insight-developers] Logging in ITK

Brad King brad.king at kitware.com
Tue Mar 15 11:22:56 EST 2005


Blezek, Daniel J (Research) wrote:
> Yes, One of the hard things is going to be gcc 2.95, which is our Solaris compiler.  Many of the errors are in tchar.h

tchar.h includes <sstream> and <streambuf> which are standard C++ stream 
library headers.  Back before gcc 3.x the C++ library was distributed 
separately from GCC.  Therefore some gcc2.95 installations have sstream 
and some do not.  Either way, the versions that do provide sstream still 
use old streams and approximate the interface to ostringstream.

However, lib4cxx seems to be directly using new streams class templates like

class stringbuf : public std::basic_streambuf<TCHAR>

and

   typedef std::basic_string<TCHAR> String;
   typedef std::basic_ostream<TCHAR> ostream;
   typedef std::basic_istream<TCHAR> istream;

in the log4cxx namespace.  An instance of log4cxx::stringbuf is used in 
log4cxx::StringBuffer which is used all over the place in log4cxx.

It looks to me like log4cxx is intimately depending on a conforming 
C++98 streams library.  Since GCC 2.95 does not provide such a library 
it cannot be supported without re-writing log4cxx::StringBuffer and the 
rest of tchar.h in terms of old streams.  My guess is that this is 
non-trivial.

-Brad


More information about the Insight-developers mailing list