привет!
есть некоторый набор тестов для сериализации.
код этот, спроектирован так, чтоб юзер имел возможность создавать собственные IO классы. единственное требование к таким классам заключается в том, что у ostream класса должен присутствовать метод 'std::size_t write(const void *ptr, const std::size_t)', а у istream класса — 'std::size_t read(void *ptr, const std::size_t)'.
с этим моментом все в порядке. проблема с тестами этого кода.
тесты устроены так, что сначала в oarchive сериализуются некоторые данные, а потом iarchive их должен десериализовать, и, после этого, сравниваем с исходными.
так вот проблема заключается в том, объект типа oarchive не разрушается в тот момент когда создается объект типа iarchive. таким образом, данные файла созданного объектом oarchive оказываются не сброшенными на диск, и, как следствие — при создании объекта iarchive, он бросает исключение о том, что нет данных для десериализации, что есть верно.
вопрос в том, каким образом я могу заставить ОС флашить данные в некоторый файл, зная только его имя?
интересует решение не привязанное с платформе, т.е. с использованием стандартных потоков, или Си`шного файлового API.
благодарен.
зы
конечно, правильным решением было бы исправить сами тесты так, чтоб объект oarchive разрушался прежде чем создавался iarchive, но это ооочень долго
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)