Как интерпретировать std::array как str используя Boost.Python?
У меня есть класс Blob, который представляет собой байт массивы фиксированной длинны.
template <size_t N>
struct Blob {
static Blob<N> fromHex(std::string hex) {...}
std::string toHex() const {...}
...
private:
std::array<N, uint8_t> storage;
};
У меня есть сложная структура, которая использует внутри себя блобы разной длины:
struct Data {
Blob<10> a;
Blob<100> b;
Blob<1000> c;
};
Я использую Boost.Python для того, чтобы использовать структуру Data в python. Я могу сделать отдельное определение class_ для каждой инстанциации Blob и использовать это, но мне кажется что было бы проще использовать обычные строки для этих целей. Я бы хотел определить Data таким образом, чтобы a/b/c были readwrite и для питона они были типом str, но внутри делались преобразования auto a = Blob<N>::fromHex(str);. Как это сделать?