Boost logo

Boost Users :

From: Markus Petermann (markus.petermann050217_at_[hidden])
Date: 2005-02-18 06:13:19


Hello!

I tried to build the date_date libraries of Boost 1.31.0 with a gcc
2.95.2 compiler on a SuSE 7.0 Linux system. I discovered several problems:

1. Several header and source files try to include the sstream header
file. This header is not available for gcc 2.95.2. I solved this problem
by using #if defined(BOOST_NO_STRINGSTREAM) ... #else ... #endif
constructions to include the correct header file and use the correct class.

2. In order to trigger the correct header file from error no. 1 the flag
BOOST_NO_STRINGSTREAM must be set. This should be done by the config
system (e.g. in boost/config/compiler/gcc.hpp).

3. I tried to include the date_time header files into a source file that
also uses the Xerces library. This resulted in an error in file
boost/date_time/gregorian_calendar.ipp, function
gregorian_calendar_base<ymd_type_,date_int_type_>::day_number(const
ymd_type& ymd) because of two + operators the compiler can use ( the
buildin operator+(int, int) and second one from Xerces ). This error can
be solved by doing a static cast to unsigned int for the three classes
boost::gregorian::greg_year, greg_month and greg_day. The unsigned int
operator is defined for all three classes.

I have created two patch files for boost versions 1.31.0 and 1.32.0:
http://home.arcor-online.de/markus.petermann/boost_1_31_0.patch
http://home.arcor-online.de/markus.petermann/boost_1_32_0.patch

Maybe these corrections can be considered for future releases.

Best regards,

Markus Petermann


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net