У меня есть буфер символов фиксированной длины, и я хотел бы передать его функции, которая принимает std :: istream &. Как я могу сделать это без копирования буфера?
Если это означает создание настраиваемого streambuf, я думаю, что буду жить с копией. Мне просто интересно, не упускаю ли я чего-то простого.
Вот что я делаю сейчас (что делает ненужную копию):
void loadFromBuffer(const char* buff, size_t len) {
std::istringstream is(std::string(buff, len)); // BUFFER COPIED HERE :(
load(is);
}
Изменить:
Для записи, вот простое решение, использующее boost.Iostreams :
#include
#include
void loadFromBuffer2(char* buff, size_t len) {
typedef boost::iostreams::stream array_stream;
array_stream is(buff, len);
load(is);
}
Я принял ответ Boost.Iostreams, потому что, похоже, это " textarea id = "field" onkeyup = "countChar (this)"> function countChar (val) {var len = val.value.length; if (...
Я хочу подсчитать символы в текстовой области, поэтому я просто сделал:
function countChar(val){
var len = val.value.length;
if (len >= 500) {
val.value = val.value.substring(0, 500);
} else {
$('#charNum').text(500 - len);
}
};
Что не так с моим фрагментом кода? Он не работает! textarea id = "field" onkeyup = "countChar (this)"> function countChar (val) {var len = val.value.length; if (...
Я хочу подсчитать символы в текстовой области, поэтому я просто сделал:
function countChar(val){
var len = val.value.length;
if (len >= 500) {
val.value = val.value.substring(0, 500);
} else {
$('#charNum').text(500 - len);
}
};
Что не так с моим фрагментом кода? Он не работает! Хорошо, это был почерк новичка, нужна помощь.