Boost logo

Boost :

Subject: Re: [boost] [regex] Last VC6 version
From: Roger Orr (rogero_at_[hidden])
Date: 2010-05-13 17:40:02


John Maddock wrote:

> The problem is we've stopped testing VC6 - support for that hasn't
> been deliberately dropped from the current release - what are the
> actual errors when building with that compiler?

There are three problems when trying to build regex:

(1)
.\boost/regex/v4/regex_format.hpp(1106) : error C2039: 'char_type' : is not
a member of 'match_results<BidiIterator,Allocator>'
.\boost/regex/v4/regex_format.hpp(1106) : error C2146: syntax error :
missing ',' before identifier 'char_type'
.\boost/regex/v4/regex_format.hpp(1106) : error C2065: 'char_type' :
undeclared identifier

This seems to caused by VC6 not coping with typename on the member of a
forward-declared template.

(2)
.\boost/regex/v4/match_results.hpp(208) : error C2535: 'class
std::basic_string<Traits,struct std::char_traits<Traits>,class
std::allocator<Traits> > __thiscall
 boost::match_results<Traits,A>::str(const class
std::basic_string<Traits,_E,_Tr> &) const' : member function already defined
or declared
        .\boost/regex/v4/match_results.hpp(198) : see declaration of 'str'
        .\boost/regex/v4/match_results.hpp(555) : see reference to class
template instantiation 'boost::match_results<BidiIterator,Allocator>' being
compiled

Seems to be confused between
   template <class Traits, class A>
   string_type str(const std::basic_string<char_type, Traits, A>& sub)
const;
and
   template <class charT, class Traits, class A>
   string_type str(const std::basic_string<charT, Traits, A>& sub) const;

(3)
.\boost/regex/v4/match_results.hpp(286) : error C2535: 'const struct
boost::sub_match<Traits> &__thiscall
boost::match_results<Traits,A>::operator [](const class
std::basic_string<Traits,_E,_Tr> &) const' : member function already defined
or declared
        .\boost/regex/v4/match_results.hpp(263) : see declaration of '[]'
        .\boost/regex/v4/match_results.hpp(555) : see reference to class
template instantiation 'boost::match_results<BidiIterator,Allocator>' being
compiled

Like (2), but for
   template <class Traits, class A>
   const_reference operator[](const std::basic_string<char_type, Traits, A>&
s) const;
And
   template <class charT, class Traits, class A>
   const_reference operator[](const std::basic_string<charT, Traits, A>& ns)
const;

(I've tried to migrate some VC6 stuff from 1.34 -> 1.43 and, having hit this
issue, wanted to avoid doing a binary search to find the highest working
version!).

Regards,
Roger.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk