the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 75 lines 2.0 kB view raw
1/*! 2 * \file bitset.hpp 3 * \brief Provides Boost.Serialization support for std::bitset 4 * \author Brian Ravnsgaard Riis 5 * \author Kenneth Riddile 6 * \date 16.09.2004, updated 04.03.2009 7 * \copyright 2004 Brian Ravnsgaard Riis 8 * \license Boost Software License 1.0 9 */ 10#ifndef BOOST_SERIALIZATION_BITSET_HPP 11#define BOOST_SERIALIZATION_BITSET_HPP 12 13// MS compatible compilers support #pragma once 14#if defined(_MSC_VER) && (_MSC_VER >= 1020) 15# pragma once 16#endif 17 18#include <bitset> 19#include <cstddef> // size_t 20 21#include <boost/config.hpp> 22#include <boost/serialization/split_free.hpp> 23#include <boost/serialization/string.hpp> 24#include <boost/serialization/nvp.hpp> 25 26namespace boost{ 27namespace serialization{ 28 29template <class Archive, std::size_t size> 30inline void save( 31 Archive & ar, 32 std::bitset<size> const & t, 33 const unsigned int /* version */ 34){ 35 const std::string bits = t.template to_string< 36 std::string::value_type, 37 std::string::traits_type, 38 std::string::allocator_type 39 >(); 40 ar << BOOST_SERIALIZATION_NVP( bits ); 41} 42 43template <class Archive, std::size_t size> 44inline void load( 45 Archive & ar, 46 std::bitset<size> & t, 47 const unsigned int /* version */ 48){ 49 std::string bits; 50 ar >> BOOST_SERIALIZATION_NVP( bits ); 51 t = std::bitset<size>(bits); 52} 53 54template <class Archive, std::size_t size> 55inline void serialize( 56 Archive & ar, 57 std::bitset<size> & t, 58 const unsigned int version 59){ 60 boost::serialization::split_free( ar, t, version ); 61} 62 63// don't track bitsets since that would trigger tracking 64// all over the program - which probably would be a surprise. 65// also, tracking would be hard to implement since, we're 66// serialization a representation of the data rather than 67// the data itself. 68template <std::size_t size> 69struct tracking_level<std::bitset<size> > 70 : mpl::int_<track_never> {} ; 71 72} //serialization 73} //boost 74 75#endif // BOOST_SERIALIZATION_BITSET_HPP