The new template-based SCF class descriptinos leds itself particulary well to have static asserst catching your misstakes on compile-time rather than runtime. By utilizing templated type-traits (possibly from [www.boost.org]) together with static asserts one could possibly check for:

  • Interfaces deriving (virtually?) from iBase
  • Interfaces having SCF_INTERFACE macro / scfInterface subclass
  • Classes not deriving from same interface several times, directly or indirectly
  • Giving better error messages on utilizing scfQueryInterface, scfImplementation(Ext)N etc with non-interfaces.