cereal компилируется и работает, но не записывает в файл - PullRequest
0 голосов
/ 06 марта 2019

Следующий код не записывает в файл.

#include <cereal/types/vector.hpp>
#include <cereal/archives/xml.hpp>
{
    vector<int> v = { 1,2,3 };
    stringstream s;
    s << "cereal_test.xml";
    cereal::XMLOutputArchive  oarchive(s);
    oarchive(v); 
}

Он компилируется и работает, по-видимому, правильно.

Если мы cout << s << endl; вне области видимости, мы видим в консоли:

cereal_test.xml
<?xml version="1.0" encoding="utf-8"?>
<cereal>
        <value0 size="dynamic">
                <value0>1</value0>
                <value1>2</value1>
                <value2>3</value2>
        </value0>
</cereal>

Чего не хватает?

1 Ответ

0 голосов
/ 06 марта 2019

Ошибочная копия-паста из зернового материала:

Должно быть ofstream вместо stringstream

{
    vector<int> v = { 1,2,3 };

    std::ofstream outFile("cereal_test.xml");
    {
        cereal::XMLOutputArchive  oarchive(outFile);
        oarchive(v);
    }
}
...