Subject: Re: [Boost-bugs] [Boost C++ Libraries] #3067: [regex] regression test failures on VC10 beta 1
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-05-23 13:57:25
#3067: [regex] regression test failures on VC10 beta 1
----------------------------------------------------------+-----------------
Reporter: Richard Webb <richard.webb_at_[hidden]> | Owner: johnmaddock
Type: Bugs | Status: new
Milestone: Boost 1.40.0 | Component: regex
Version: Boost Development Trunk | Severity: Problem
Resolution: | Keywords:
----------------------------------------------------------+-----------------
Comment(by Richard Webb <richard.webb_at_[hidden]>):
I've done a few more tests with this, and found the following:
Your patch fixes the initial errors, but the compile still fails with a
number of other errors (see the attached logs for full details).
The first errors are :
{{{
wc_regex_traits.cpp(48) : error C2910: 'std::char_traits<unsigned
short>::length' : cannot be explicitly specialized
usinstances.cpp(47) : error C2910: 'std::char_traits<unsigned
short>::length' : cannot be explicitly specialized
}}}
Removing those workarounds allows the code to compile, but results in
linker errors. e.g.:
{{{
w32_regex_traits.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: __thiscall std::basic_string<unsigned
short,struct std::char_traits<unsigned short>,class
std::allocator<unsigned short> >::basic_string<unsigned short,struct
std::char_traits<unsigned short>,class std::allocator<unsigned short>
>(unsigned short const *)"
(__imp_??0?$basic_string_at_GU?$char_traits_at_G@std@@V?$allocator_at_G@2@@std@@QAE_at_PBG@Z)
referenced in function "class std::basic_string<unsigned short,struct
std::char_traits<unsigned short>,class std::allocator<unsigned short> >
__cdecl boost::re_detail::w32_cat_get(class boost::shared_ptr<void> const
&,unsigned long,int,class std::basic_string<unsigned short,struct
std::char_traits<unsigned short>,class std::allocator<unsigned short> >
const &)"
(?w32_cat_get_at_re_detail_at_boost@@YA?AV?$basic_string_at_GU?$char_traits_at_G@std@@V?$allocator_at_G@2@@std@@ABV?$shared_ptr_at_X@2_at_KHABV34@@Z)
}}}
Looking at the VC10 headers, i see that they contain definitions for
std::u16string (where u16string is basic_string<char16_t> and char16_t is
an unsigned short), so i'm thinking that theres a clash between the
definitions.
Indeed, removing all the workarounds from the 2 cpp files mentioned above
along with the 'extern template...' on line 169 of regex/config.hpp seems
to fix the failures.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/3067#comment:4> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:00 UTC