35 #include <unordered_map>
37 #include <unordered_set>
41 template <
template <
bool>
class Archive,
class T>
bool do_serialize(Archive<false> &ar, std::vector<T> &v);
42 template <
template <
bool>
class Archive,
class T>
bool do_serialize(Archive<true> &ar, std::vector<T> &v);
44 template <
template <
bool>
class Archive,
class T>
bool do_serialize(Archive<false> &ar, std::deque<T> &v);
45 template <
template <
bool>
class Archive,
class T>
bool do_serialize(Archive<true> &ar, std::deque<T> &v);
47 template<
typename K,
typename V>
52 typename std::unordered_map<K, V> &
parent() {
return *
this; }
58 template<
typename K,
typename V>
63 typename std::map<K, V> &
parent() {
return *
this; }
69 template<
typename K,
typename V>
74 typename std::unordered_multimap<K, V> &
parent() {
return *
this; }
80 template <
template <
bool>
class Archive,
class T>
bool do_serialize(Archive<false> &ar, std::unordered_set<T> &v);
81 template <
template <
bool>
class Archive,
class T>
bool do_serialize(Archive<true> &ar, std::unordered_set<T> &v);
83 template <
template <
bool>
class Archive,
class T>
bool do_serialize(Archive<false> &ar, std::set<T> &v);
84 template <
template <
bool>
class Archive,
class T>
bool do_serialize(Archive<true> &ar, std::set<T> &v);
90 template <
typename T>
void do_reserve(std::vector<T> &c,
size_t N) { c.reserve(N); }
91 template <
typename T>
void do_add(std::vector<T> &c,
T &&e) { c.emplace_back(std::forward<T>(e)); }
93 template <
typename T>
void do_add(std::deque<T> &c,
T &&e) { c.emplace_back(std::forward<T>(e)); }
101 template <
typename T>
void do_add(std::unordered_set<T> &c,
T &&e) { c.insert(std::forward<T>(e)); }
103 template <
typename T>
void do_add(std::set<T> &c,
T &&e) { c.insert(std::forward<T>(e)); }
Definition: containers.h:60
std::map< K, V > & parent()
Definition: containers.h:63
std::pair< K, V > value_type
Definition: containers.h:62
Definition: containers.h:49
std::pair< K, V > value_type
Definition: containers.h:51
std::unordered_map< K, V > & parent()
Definition: containers.h:52
Definition: containers.h:71
std::pair< K, V > value_type
Definition: containers.h:73
std::unordered_multimap< K, V > & parent()
Definition: containers.h:74
bool do_serialize_container(Archive< false > &ar, C &v)
Definition: container.h:61
bool do_serialize(Archive< false > &ar, std::vector< T > &v)
Definition: containers.h:109
const uint32_t T[512]
Definition: groestl_tables.h:36
declaration and default definition for the functions used the API
Definition: expect.cpp:34
void do_add(std::vector< T > &c, T &&e)
Definition: containers.h:91
void do_reserve(C &c, size_t N)
Definition: container.h:56
Definition: binary_utils.h:36
Simple DSL AAPI based on.