C++ interoperability is a huge amount of work, I'm so impressed by the effort that's gone into it thus far and where it's at.
I've decided to wait a bit for my use case, because I would still have to write C wrappers to deal with thunking blocks to std::function
, dispatching virtual member functions, etc. I'm excited for when these limitations are removed.
Before doing that I thought I'd point out one issue with the importer, when I changed the type in a function declaration from uint16_t
to LocalEntity::AemCommandStatus
, it failed to import. I tried to hack around it by typedef'ing to uint16_t
when not building the C++ library, but of course that fails at link time because the mangling is different.
class LocalEntity : public Entity
{
public:
/** Status code returned by all AEM (AECP) command methods. */
enum class AemCommandStatus : std::uint16_t
{
...