|
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