Lars Gullik BjÃnnes <[EMAIL PROTECTED]> writes:
>
> Jean-Marc Lasgouttes <[EMAIL PROTECTED]> writes:
>
> | Lars, we need some help from you I guess. The error says:
>
> g++ on darwin is botched?
>
> Turn off concept checking for darwin?
>
> | So the problem is with the new concept check support.
>
> or darwin...
I made more inquiries. The offending code in gcc/.../boost_concept_check.h is:
(I guess some C++ afficionados know what this is about, I don't)
__________
template <class _Tp>
struct _InputIteratorConcept
{
void __constraints() {
__function_requires< _TrivialIteratorConcept<_Tp> >();
// require iterator_traits typedef's
typedef typename std::iterator_traits<_Tp>::difference_type _D;
//<<<<<<
// __function_requires< _SignedIntegerConcept<_D> >();
typedef typename std::iterator_traits<_Tp>::reference _R;
//<<<<<<
typedef typename std::iterator_traits<_Tp>::pointer _Pt;
typedef typename std::iterator_traits<_Tp>::iterator_category _Cat;
__function_requires< _ConvertibleConcept<
typename std::iterator_traits<_Tp>::iterator_category,
std::input_iterator_tag> >();
++__i; // require preincrement operator
__i++; // require postincrement operator
}
_Tp __i;
};
__________
After preprocessing (gcc -E) this looks like this:
__________
struct _InputIteratorConcept
{
void __constraints() {
__function_requires< _TrivialIteratorConcept<_Tp> >();
typedef typename std::iterator_traits<_Tp>::difference_type 0x00000400L;
//<<<
typedef typename std::iterator_traits<_Tp>::reference 0x00040000L; //<<<
typedef typename std::iterator_traits<_Tp>::pointer _Pt;
typedef typename std::iterator_traits<_Tp>::iterator_category _Cat;
__function_requires< _ConvertibleConcept<
typename std::iterator_traits<_Tp>::iterator_category,
std::input_iterator_tag> >();
++__i;
__i++;
}
_Tp __i;
};
__________
So the errormessage seems justified and we only have to find
out which red-dripping includefile defined _D and _R ...
(Did I mention recently that I prefer Java over C++ ?)
Cheers
/Andreas