You have many alternatives, but I think that it will be difficult to find an database that meets your exact requirments
Some of the alternatives that comes to mind are HamsterDB, EJDB and FireBird. These can all be embedded into your application and provides C++ bindings.