Boost logo

Boost Users :

From: Loïc Joly (loic.joly_at_[hidden])
Date: 2006-08-09 13:22:17


Rob Caldecott a écrit :
> I am using the Boost unit test suite for the first time, but am having a
> problem using BOOST_CHECK_EQUAL with wide strings. For example:
>
> std::wstring str1 = L"unit";
>
> std::wstring str2 = L"test";
>
> BOOST_CHECK_EQUAL(str1, str2);
>
> This produces the following error:
>
> c:\boost\include\boost-1_33_1\boost\test\test_tools.hpp(274) : error C2679:
> binary '<<' : no operator found which takes a right-hand operand of type
> 'const std::wstring' (or there is no acceptable conversion)

Boost::test may want to display the values of those wide strings on a
narrow stream if the test fails, thus your error.

Try adding something like

namespace std {
inline std::ostream& operator<<(std::ostream& out, const std::wstring&
value)
{
     out << ConvertWstringToString(value);
     return out;
}

}

With some appropriate definition for ConvertWstringToString.

-- 
Loïc

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net