39 #include <boost/variant/variant.hpp> 40 #include <boost/variant/apply_visitor.hpp> 41 #include <boost/variant/static_visitor.hpp> 42 #include <boost/mpl/empty.hpp> 43 #include <boost/mpl/if.hpp> 44 #include <boost/mpl/front.hpp> 45 #include <boost/mpl/pop_front.hpp> 54 template <
class Archive,
class T>
63 template <
class Archive,
class Variant,
class TBegin,
class TEnd>
67 typedef typename boost::mpl::next<TBegin>::type
TNext;
77 ar.stream().setstate(std::ios::failbit);
91 template <
class Archive,
class Variant,
class TBegin>
98 ar.stream().setstate(std::ios::failbit);
104 template <
template <
bool>
class Archive, BOOST_VARIANT_ENUM_PARAMS(
typename T)>
109 typedef typename variant_type::types
types;
114 ar.read_variant_tag(t);
116 typename boost::mpl::begin<types>::type,
117 typename boost::mpl::end<types>::type>::read(ar, v, t))
119 ar.stream().setstate(std::ios::failbit);
127 template <
template <
bool>
class Archive, BOOST_VARIANT_ENUM_PARAMS(
typename T)>
133 struct visitor :
public boost::static_visitor<bool>
140 bool operator ()(
T &rv)
const 146 ar.stream().setstate(std::ios::failbit);
155 return boost::apply_visitor(visitor(ar), v);
Archive::variant_tag_type variant_tag_type
Definition: variant.h:66
const uint32_t T[512]
Definition: groestl_tables.h:33
boost::variant< BOOST_VARIANT_ENUM_PARAMS(T)> variant_type
Definition: variant.h:107
Archive::variant_tag_type variant_tag_type
Definition: variant.h:94
Definition: unordered_containers_boost_serialization.h:37
boost::variant< BOOST_VARIANT_ENUM_PARAMS(T)> variant_type
Definition: variant.h:130
reads a variant
Definition: variant.h:64
static bool serialize(Archive< false > &ar, variant_type &v)
Definition: variant.h:111
Archive< false >::variant_tag_type variant_tag_type
Definition: variant.h:108
static bool read(Archive &ar, Variant &v, variant_tag_type t)
Definition: variant.h:71
void do_serialize(Archive &a, epee::net_utils::network_address &na, T local)
Definition: net_peerlist_boost_serialization.h:41
Simple DSL AAPI based on.
static bool serialize(Archive< true > &ar, variant_type &v)
Definition: variant.h:154
Archive< true > & ar
Definition: variant.h:135
#define false
Definition: stdbool.h:37
boost::mpl::deref< TBegin >::type current_type
Definition: variant.h:68
static bool read(Archive &ar, Variant &v, variant_tag_type t)
Definition: variant.h:96
... wouldn't a class be better?
Definition: serialization.h:92
string a
Definition: MakeCryptoOps.py:15
visitor(Archive< true > &a)
Definition: variant.h:137
variant_type::types types
Definition: variant.h:109
boost::mpl::next< TBegin >::type TNext
Definition: variant.h:67
#define true
Definition: stdbool.h:36