I haven’t had a chance to give it a try yet, but python synthetic children provider have an option to specify a --recognizer-function
which gets to inspect the SBType in question to determine whether it is compatible with it or not.
Wouldn’t exposing the same functionality to C++ solve the dynamic synthetic implementation selection problem?