cereal 编译并运行,但不写入文件

cereal compiles and runs, but does not write to file

以下代码不写入文件。

#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>

缺少什么?

谷物教程中的错误复制粘贴:

应该是ofstream而不是stringstream

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

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