I found the error. The de-serialization code should use boost::archive::binary_iarchive ar(filter); instead of boost::archive::binary_iarchive ar(f);
boost::archive::binary_iarchive ar(filter);
boost::archive::binary_iarchive ar(f);