Как интерпретировать 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);. Как это сделать?


Ответы (0 шт):