It's possible to use the "hourglass" pattern where your implementation is written in C++, you export a C API (and ABI), and then you can provide an additional, light C++ wrapper based on the C API.
The idea (and one that worked well in several projects I've worked on) is that you use C++ as main language of the library and make outside bindings C.
It does require some discipline, but C++ has many portable constructs that make life significantly easier when writing business logic.