This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Problems with the new concepts checking code (boost)
- To: Phil Edwards <pedwards at disaster dot jaj dot com>
- Subject: Re: Problems with the new concepts checking code (boost)
- From: Peter Schmid <schmid at snake dot iap dot physik dot tu-darmstadt dot de>
- Date: Fri, 6 Apr 2001 02:43:33 +0200 (CEST)
- cc: libstdc++ at gcc dot gnu dot org
I can elaborate a bit more what I did exactly to compile the boost
repository version 1.21.1. First of all, I ran the boost test suite without a
modification of the headers. The failures (after fixing a coding error in
boost/rational.hpp) are:
/libs/concept_check/concept_check_test.cpp * +
/libs/concept_check/class_concept_check_test.cpp * +
/libs/functional/function_test.cpp * +
/libs/graph/test/graph.cpp * +
/libs/integer/integer_traits_test.cpp
/libs/random/random_test.cpp
/libs/random/random_demo.cpp
/libs/regex/demo/regress/regex_test.cpp *
/libs/regex/demo/regress/wregex_test.cpp *
/libs/utility/call_traits_test.cpp
/libs/utility/counting_iterator_test.cpp +
/libs/utility/iterator_traits_test.cpp +
When the checking code is disabled, all files marked with a plus sign
do compile and work as expected. If the old checking code is enabled
files marked with an asterisk do not fail.
My aim was to get concept_check_test.cpp to compile. In the first attempt
I changed the name of the namespace from boost to boost_neu; but the
results are exactly the same as before. In a second attempt I changed
all the macro definitions from BOOST* to BOOST_NEU*, but did not touch
the guards. This introduces additional errors in
libs/utility/iterator_adaptor_test.cpp,
libs/utility/transform_iterator_test.cpp,
libs/utility/indirect_iterator_test.cpp,
libs/utility/iter_traits_gen_test.cpp.
If I change the guards in the same fashion, I get as a result that
libs/concept_check/concept_check_test.cpp,
libs/concept_check/class_concept_check_test.cpp,
libs/utility/compressed_pair_test.cpp,
libs/utility/transform_iterator_test.cpp pass.
>Did you change the name of the guarding macro in the
>Boost header?
Yes, finally I did that to get
/libs/concept_check/concept_check_test.cpp to compile.
>That was a design decision for Boost; Jeremy et al knows about it.
>(See the Boost web page for more on that one.)
I have read that document sometime before. I was aware that the
messages were less concise, but did not expect this increase in
verbosity, since the checking "code was simplified" according to the
documentation shipped with boost.
In the file boost_concept_check.h from libstdc++ there is a note that
this code is based on version 1.12.0 of the Boost library, maybe these
checking routines are incompatible with version 1.21.1 of the boost
repository?
Peter Schmid