no suitable user-defined conversion from utility::string_t to std::string

Kaj picture Kaj · Jul 7, 2015 · Viewed 9.7k times · Source

I am using the casablanca C++ Rest library to make HTTP requests.

The problem is that this gives a utility::string_t string as output and I can't quite find any way to convert this to a classic std::string. Any ideas?

client.request(methods::GET).then([](http_response response)
{
  if(response.status_code() == status_codes::OK)
  {
    string_t s = response.extract_string().get();
  }
});

Answer

roschuma picture roschuma · Feb 2, 2016

Depending on what platform you are compiling for, the utility::string_t type will be typedef'd to either std::wstring (on Windows) or std::string (on Linux/OSX).

To get a classic utf-8 std::string regardless of platform, take a look at utility::conversions::to_utf8string.

reference documentation