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


Reply via email to