Romain Geissler <romain.geiss...@gmail.com> writes: > Using structs with some sets of function pointers may break compatibility > between minor release.
Yes, but fortunately we have a good understanding of how not to do that. We could also go the even safer route used for linker plugins, in which the plugin is invoked with a list of functions, where each function is tagged with a code. See include/plugin-api.h for the interface and lto-plugin for an implementation. The approach there is very clean and permits forward and backward binary compatibility. I don't know if we want to go that far for compiler plugins. > Anyway, you're suggestion to group functions in common names, that's just > C++ motto. May the eventual plugin API in C++ (independently from internals > being C++ or not) ? I think we have a clear understanding of how to maintain compatibility across releases in C. I do not think we have that understanding in C++. Ian