
Please forgive me if this question has been answered but I've searched for days now and cannot find it.
How do I expose a c++ struct with a bit field to python using boost::python?
When I try I get this error.
error: invalid pointer to bit-field ‘frameHdr_s::hdrSize’
Here is the struct:
#define DATA_SIZE 0x100
typedef struct frameHdr_s
{
#define USE_BIT_FIELDS
#ifdef USE_BIT_FIELDS
// Longword 0
uint32_t hdrSize : 16; ///< Size of the header
uint32_t revMin : 8; ///< Frame Minor Version
uint32_t revMaj : 8; ///< Frame Major Version
#else
// Longword 0
uint32_t hdrSize; ///< Size of the header
uint32_t revMin ; ///< Frame Minor Version
uint32_t revMaj ; ///< Frame Major Version
#endif
} frameHdr_t;
typedef struct frame_t
{
frameHdr_t frame_header; ///< frame header
uint8_t data[DATA_SIZE]; ///< Byte array of data
} frame_t;
Here is boost code to expose it:
using namespace boost::python;
BOOST_PYTHON_MODULE(api) {
class_