22class Base64 :
public std::vector<uint8_t> {
42 std::vector<uint8_t> bytes;
51 void convert(
const std::vector<T> & data, std::vector<uint8_t> & bytes){
53 static const size_t N =
sizeof(T);
55 bytes.reserve(data.size() * N);
56 for (
const auto & x: data) {
57 append_value_le(bytes, x);
63 void convertFrom(
const std::vector<float> & data){
69 void convertFrom(
const std::vector<uint16_t> & data){
91 inline void append_value_le(std::vector<uint8_t>& out, T v) {
94 const size_t N =
sizeof(T);
97 std::memcpy(&u, &v, N);
99 for (
size_t i=0; i<N; ++i){
101 out.push_back(uint8_t(u & 0xFF));
115 void base64_encode(
const std::vector<uint8_t>& data, std::string & out);