2
Я пытаюсь прочитать из сокета asio в std :: string без копирования. Эта реализация, похоже, работает, но я не уверен, надежна ли она.Запись из asio :: ip :: tcp :: socket непосредственно в std :: string
string read(int bytes)
{
string str;
str.resize(bytes);
char* buffer = (char*) str.data();
//socket is declared as class member
asio::read(socket,asio::buffer(buffer,bytes));
return str;
}
Ваш вопрос относится к общей категории «могу ли я написать непосредственно в буфер' std :: string'? ». [Выглядит как дубликат] (http://stackoverflow.com/questions/25169915/is-writing-to-str0-buffer-of-a-stdstring-well-defined-behaviour-in-c11) – PaulMcKenzie
Что вы не уверены ? –
@PaulMcKenzie да, это был почти ответ, который я искал, но это 'string.data()' и '& string [0]' то же самое? – Freggar