Boost C++ Libraries: Ticket #3067: [regex] regression test failures on VC10 beta 1 https://svn.boost.org/trac10/ticket/3067 <p> The regex regression tests are pretty much all failing in VC 10 beta 1, due to the 'stdext' namespace not being defined. e.g. </p> <p> <a class="ext-link" href="http://tinyurl.com/qfxhbj"><span class="icon">​</span>http://tinyurl.com/qfxhbj</a> </p> <p> Looking at the VC10 &lt;algorithm&gt; header, there is no mention of stdext any more. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/3067 Trac 1.4.3 John Maddock Fri, 22 May 2009 16:02:32 GMT <link>https://svn.boost.org/trac10/ticket/3067#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3067#comment:1</guid> <description> <p> What happened to unchecked_equal and unchecked_copy then? Or have these been removed? </p> <p> Is the macro _STDEXT still defined after including &lt;algorithm&gt; </p> <p> Thanks, John. </p> </description> <category>Ticket</category> </item> <item> <author>Richard Webb <richard.webb@…></author> <pubDate>Fri, 22 May 2009 17:12:23 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/3067#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3067#comment:2</guid> <description> <p> _STDEXT is defined after including &lt;algorithm&gt; (it's defined in yvals.h), but is no longer used in the &lt;algorithm&gt; header. </p> <p> The beta documentation @ <a class="ext-link" href="http://msdn.microsoft.com/en-us/library/aa985849(VS.100).aspx"><span class="icon">​</span>http://msdn.microsoft.com/en-us/library/aa985849(VS.100).aspx</a> describes unchecked_copy but it doesn't exist in the installed headers. I assume that this is a case of the docs having not been updated yet, but i'll open a ticket on MS Connect to confirm that it's intentional. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Sat, 23 May 2009 10:39:17 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/3067 https://svn.boost.org/trac10/ticket/3067 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">regex_workaround-vc10.patch</span> </li> </ul> Ticket John Maddock Sat, 23 May 2009 10:40:59 GMT <link>https://svn.boost.org/trac10/ticket/3067#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3067#comment:3</guid> <description> <p> Can you give the attached patch a test? </p> <p> Unfortunately if MS has retained the old safe/non-standard algorithms then this may not compile either :-( </p> <p> Thanks, John. </p> </description> <category>Ticket</category> </item> <item> <author>Richard Webb <richard.webb@…></author> <pubDate>Sat, 23 May 2009 13:57:24 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/3067#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3067#comment:4</guid> <description> <p> I've done a few more tests with this, and found the following: </p> <p> Your patch fixes the initial errors, but the compile still fails with a number of other errors (see the attached logs for full details). </p> <p> The first errors are : </p> <pre class="wiki">wc_regex_traits.cpp(48) : error C2910: 'std::char_traits&lt;unsigned short&gt;::length' : cannot be explicitly specialized usinstances.cpp(47) : error C2910: 'std::char_traits&lt;unsigned short&gt;::length' : cannot be explicitly specialized </pre><p> Removing those workarounds allows the code to compile, but results in linker errors. e.g.: </p> <pre class="wiki">w32_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string&lt;unsigned short,struct std::char_traits&lt;unsigned short&gt;,class std::allocator&lt;unsigned short&gt; &gt;::basic_string&lt;unsigned short,struct std::char_traits&lt;unsigned short&gt;,class std::allocator&lt;unsigned short&gt; &gt;(unsigned short const *)" (__imp_??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z) referenced in function "class std::basic_string&lt;unsigned short,struct std::char_traits&lt;unsigned short&gt;,class std::allocator&lt;unsigned short&gt; &gt; __cdecl boost::re_detail::w32_cat_get(class boost::shared_ptr&lt;void&gt; const &amp;,unsigned long,int,class std::basic_string&lt;unsigned short,struct std::char_traits&lt;unsigned short&gt;,class std::allocator&lt;unsigned short&gt; &gt; const &amp;)" (?w32_cat_get@re_detail@boost@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@ABV?$shared_ptr@X@2@KHABV34@@Z) </pre><p> Looking at the VC10 headers, i see that they contain definitions for std::u16string (where u16string is basic_string&lt;char16_t&gt; and char16_t is an unsigned short), so i'm thinking that theres a clash between the definitions. </p> <p> 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. </p> </description> <category>Ticket</category> </item> <item> <author>Richard Webb <richard.webb@…></author> <pubDate>Sat, 23 May 2009 14:00:11 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/3067 https://svn.boost.org/trac10/ticket/3067 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">logs.zip</span> </li> </ul> <p> regression test logs </p> Ticket Richard Webb <richard.webb@…> Tue, 02 Jun 2009 20:07:37 GMT <link>https://svn.boost.org/trac10/ticket/3067#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3067#comment:5</guid> <description> <p> I opened a ticked about the stdext issue @ <a class="ext-link" href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=456327"><span class="icon">​</span>http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=456327</a>, and it's just been updated by MS with a comment about the changes they're thinking about and a request for info. </p> <p> Do you have any comments about the Boost usage or requirements? </p> <p> Thanks, Richard Webb </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Wed, 03 Jun 2009 08:30:25 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/3067#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3067#comment:6</guid> <description> <p> Apologies, I've let this one drop off my radar :-( </p> <p> The reason I started using these functions in the first place, was that VC++ would fail to compile std conforming code, if a user-defined <a class="missing wiki">OutputIterator</a> was passed to certain std lib algorithms. Since the additional requirements on an <a class="missing wiki">OutputIterator</a> to make it "safe" weren't documented, the only alternative was to use the unchecked_* functions as a workaround :-( </p> <p> If the new versions will accept any <a class="missing wiki">OutputIterators</a>, including ones the implementation knows nothing about, then I'd be happy. </p> <p> HTH, John. </p> </description> <category>Ticket</category> </item> <item> <author>Richard Webb <richard.webb@…></author> <pubDate>Wed, 03 Jun 2009 21:12:14 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/3067#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3067#comment:7</guid> <description> <p> The recent changes to the regex code allow it to compile, but it still fails to link. </p> <p> it links ok if the </p> <p> extern template class <span class="underline">declspec(dllimport) std::basic_string&lt;unsigned short&gt;; </span></p> <p> on line 169 of regex/config.hpp is removed. </p> </description> <category>Ticket</category> </item> <item> <author>Richard Webb <richard.webb@…></author> <pubDate>Sun, 07 Jun 2009 15:10:28 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/3067#comment:8 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3067#comment:8</guid> <description> <p> The tests are all passing now :) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Mon, 03 Aug 2009 11:58:04 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/3067#comment:9 https://svn.boost.org/trac10/ticket/3067#comment:9 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> Ticket