What you need to do use leverage Obj-C++ and make a shim class that bridges your C++ and your Obj-C code, so you can safely call this C++ interface from your C++ app.
Typically you do this by:
Make an Obj-C++ wrapper which holds the pure Obj-C classes, state and methods you need.
You make a pure C++ class which wraps those that Obj-C++ class and only in private interfaces (ie, not public facing in headers etc) the Obj-C code (this isolates your pure C++ land from Obj-C bullshit, memory management and headers)
Then you call your C++ as normal.