The use of void* in the interface is not my favorite solution...
* A fully encapsulated library wrapper with C++ interface * Refactor types.hpp to hide the big headers in a macro conditional section