
Hi, I'm trying to use Unicode with Regex in an MFC app. The preprocessor variable UNICODE is defined. But I obtain an error on the line : regex_search(sText, oResults, pRegExp); error C2665: none of the 4 overloads can convert parameter 1 from type 'class CString' sText is a CString which has a "const wchar_t*" operator. The problem is why doesn't the regex_search prototype require a "const wchar_t*" when UNICODE is defined ? Thanks. Fred (I read the documentation, but maybe I missed something...)

You did, use sText.c_str() to get a const wchat_t*, otherwise there are too many overloaded forms of the function for the conversion to be found automatically. John Maddock http://ourworld.compuserve.com/homepages/john_maddock/index.htm

John Maddock wrote:
I tried the "const wchar_t*" operator :
regex_search((const wchar_t*) sText, oResults, pRegExp);
but the problem is not here.
VC++6 wrote :
error C2664: '__thiscall boost::reg_expression

Sorry, let me try again: the only effect that defining UNICODE has on the regex lib is on the definition of the POSIX C API functions. All the template classes and functions remain unchanged. So you need to be using boost::wregex not boost::regex for your regular expressions. John Maddock http://ourworld.compuserve.com/homepages/john_maddock/index.htm
participants (2)
-
Fr�d�ric Mayot
-
John Maddock