
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.