Я знаю, что это старый, но я недавно столкнулся с этой проблемой. Я не был удовлетворен решением использования std :: deque, потому что мне действительно требовался только интерфейс стека. В настоящее время улучшена поддержка сериализации std :: stack путем включения этих заголовочных файлов в следующем порядке
#include "boost/serialization/deque.hpp"
#include "boost/serialization/stack.hpp"
Полный пример будет выглядеть примерно так:
#include <string>
#include <stack>
#include "boost/archive/text_oarchive.hpp"
#include "boost/archive/text_iarchive.hpp"
#include "boost/serialization/deque.hpp"
#include "boost/serialization/stack.hpp"
struct s
{
std::stack<std::string> stack;
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & stack;
}
};