Proyecto Final - Turinmachin
Recreación del minijuego de matemáticas de Brain-Age usando redes neuronales
Loading...
Searching...
No Matches
serialization.h
Go to the documentation of this file.
1#ifndef SERIALIZATION_H
2#define SERIALIZATION_H
3
4#include <istream>
5#include <ostream>
6
7namespace serialization {
8 template <typename T>
9 void write_numeric(std::ostream& out, const T n) {
10 constexpr std::size_t N = sizeof(T);
11 const auto data = std::bit_cast<std::array<std::uint8_t, N>>(n);
12 // NOLINTNEXTLINE
13 out.write(reinterpret_cast<const char*>(data.data()), data.size());
14 }
15
16 template <typename T>
17 auto read_numeric(std::istream& in) -> T {
18 constexpr std::size_t N = sizeof(T);
19 std::array<std::uint8_t, N> data{};
20
21 // NOLINTNEXTLINE
22 in.read(reinterpret_cast<char*>(data.data()), data.size());
23 return std::bit_cast<T>(data);
24 }
25
26} // namespace serialization
27
28#endif
Definition serialization.h:7
auto read_numeric(std::istream &in) -> T
Definition serialization.h:17
void write_numeric(std::ostream &out, const T n)
Definition serialization.h:9