Я использую библиотеку Socket.IO для создания клиента. При отправке сообщения я должен передать свое сообщение (данные) как sio::message::list(msg)
void Socket_IO::send_message(std::string_view msg) //Gives Error
//void Socket_IO::send_message(const std::string &msg) //Works
{
this->client.socket()->emit(Socket_IO::general_message, sio::message::list(msg), [&](sio::message::list const& msg) {
});
}
class sio :: message :: list имеет конструктор
list(const string& text)
{
m_vector.push_back(string_message::create(text));
}
но не имеет конструктора std :: string_view
Ошибка:
'<function-style-cast>': cannot convert from 'std::string_view' to 'sio::message::list'
Я хочу знать, есть ли у них какой-либо способ передать std :: string_view для API, ожидающего const std :: string &
Я не могу использовать функцию c_str (), поскольку строка может содержать двоичные данные, которые могут содержать нулевой символ (0x00).
Я думал о создании строкового объекта sio::message::list(std::string str(msg))
, но хотел бы узнать, не побьет ли он цель использования std :: string_view.