<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
Hi</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
Is there a plan to include wstring support out-of-the-box for CppUnit? If not, and in the mean time, what is the “correct” way to add support for wstring, (e.g. such that the following will compile on a strict compiler such as the one included with Xcode 5.1.1)?</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
(This is is an excerpt showing an additional test added to examples/simple/ExampleTestCase.cpp (with corresponding change in .h).)</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<br>
</div>
<div>
<p style="font-family: Menlo; font-size: 11px; color: rgb(209, 47, 27); margin: 0px;">
<span style="color: #78492a">#include </span><cppunit/config/SourcePrefix.h></p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(209, 47, 27); margin: 0px;">
<span style="color: #78492a">#include </span>"ExampleTestCase.h"</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(209, 47, 27); margin: 0px;">
//HERE</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(120, 73, 42); margin: 0px;">
#include <span style="color: #d12f1b"><string></span></p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px; min-height: 13px;">
<br>
</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px;">
CPPUNIT_TEST_SUITE_REGISTRATION( ExampleTestCase );</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px; min-height: 13px;">
<br>
</p>
<p style="margin: 0px;"><font color="#bb2ca2" face="Menlo" size="2">… </font></p>
<p style="margin: 0px;"><font color="#bb2ca2" face="Menlo" size="2"><br>
</font></p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px;">
<span style="color: #bb2ca2">void</span> ExampleTestCase::exampleForWString()</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px;">
{</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px;">
    std::wstring ws1 = L<span style="color: #d12f1b">"Hello"</span>;</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px;">
    std::wstring ws2 = L<span style="color: #d12f1b">"Goodbye ????????"</span>;</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px;">
    CPPUNIT_ASSERT_EQUAL (ws1, ws2);</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px;">
}</p>
<p style="font-family: Menlo; font-size: 11px; color: rgb(0, 0, 0); margin: 0px; min-height: 13px;">
<br>
</p>
<p style="margin: 0px;"><font color="#bb2ca2" face="Menlo" size="2">…</font></p>
<p style="margin: 0px;"><br>
</p>
<p style="margin: 0px;">My solution was to #include “CppUnitWstringSupport.hpp” where after the line “//HERE”, this is the content of CppUnitWstringSupport.hpp:</p>
<p style="margin: 0px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(120, 73, 42);">
#ifndef CPPUNITWSTRINGSUPPORT_H</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(120, 73, 42);">
#define CPPUNITWSTRINGSUPPORT_H</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(0, 132, 0);">
<span style="color: #78492a">#include </span><span style="color: #d12f1b"><iostream></span><span style="color: #78492a">      
</span>// std::cout, std::hex</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(0, 132, 0);">
<span style="color: #78492a">#include </span><span style="color: #d12f1b"><string></span><span style="color: #78492a">        
</span>// std::string, std::u32string</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(0, 132, 0);">
<span style="color: #78492a">#include </span><span style="color: #d12f1b"><locale></span><span style="color: #78492a">        
</span>// std::wstring_convert</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(0, 132, 0);">
<span style="color: #78492a">#include </span><span style="color: #d12f1b"><codecvt></span><span style="color: #78492a">       
</span>// std::codecvt_utf8</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(0, 132, 0);">
<span style="color: #78492a">#include </span><span style="color: #d12f1b"><cstdint></span><span style="color: #78492a">       
</span>// std::uint_least32_t</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="color: #bb2ca2">namespace</span> CppUnit {</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(187, 44, 162);">
<span style="color: #000000">    </span>template<span style="color: #000000"><></span></p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">    <span style="color: #bb2ca2">
struct</span> assertion_traits<std::wstring></p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">    {</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        <span style="color: #bb2ca2">
static</span> <span style="color: #bb2ca2">bool</span> equal(<span style="color: #bb2ca2">const</span> std::wstring& x,
<span style="color: #bb2ca2">const</span> std::wstring& y)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        {</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">            <span style="color: #bb2ca2">
return</span> x == y;</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        }</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;">        </p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        <span style="color: #bb2ca2">
static</span> std::string toString(<span style="color: #bb2ca2">const</span> std::wstring& ws)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        {</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">            std::wstring_convert<std::codecvt_utf8<<span style="color: #bb2ca2">wchar_t</span>>,<span style="color: #bb2ca2">wchar_t</span>> cv;</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">            <span style="color: #bb2ca2">
return</span> cv.to_bytes(ws);</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        }</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">    };</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">};</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px;"></p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(0, 132, 0);">
<span style="color: #78492a">#endif </span>// CPPUNITWSTRINGSUPPORT_H</p>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div>Randall</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<p></p>
</div>
</body>
</html>