void write_rat_header(std::ofstream& file, const std::vector<uint32_t>& sizes, const uint32_t var, const uint32_t type, const std::string& info) { using tools::endian_reverse_inplace; using std::string; auto write = [&file](uint32_t x) { endian_reverse_inplace(x); file.write(reinterpret_cast<const char*>(&x), sizeof(x)); }; const uint32_t dim = sizes.size(); write(dim); for (auto sz : sizes) { write(sz); } write(var); write(type); write(0); write(0); write(0); write(0); string _info = string(80, ' '); boost::copy(string(info, 0, 80), _info.begin()); file << _info; }