Направляющие: Грабли Test:functionals не могут получить доступ к DB (Sqlite3 на winXP)

И самое быстрое (что я знаю о, обесценивая файлы с отображенной памятью):

std::string str(static_cast<std::stringstream const&>(std::stringstream() << in.rdbuf()).str());

Это требует дополнительного заголовка <sstream> для строкового потока. (Эти static_cast необходимо с тех пор operator << возвраты простое ostream&, но мы знаем, что в действительности it’s stringstream&, таким образом, бросок безопасен.)

Разделение в несколько строк, перемещая временный файл в переменную, мы получаем более читаемый код:

std::string slurp(std::ifstream& in) {
    std::stringstream sstr;
    sstr << in.rdbuf();
    return sstr.str();
}

Или, еще раз в одной строке:

std::string slurp(std::ifstream& in) {
    return static_cast<std::stringstream const&>(std::stringstream() << in.rdbuf()).str();
}
8
задан user62605 5 August 2009 в 16:55
поделиться

1 ответ

Если вы работаете под Cygwin, попробуйте запустить это в файлах базы данных:

chmod 777 <your-files>

Cygwin может запутаться в том, какие разрешения следует применять.

Да, я знаю, что эти разрешения смешны , но иногда и Сигвин ...

1
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: