is an interface a class
You can detect at compile time if a type is an interface with __is_interface_class(type) . For more information, see Compiler Support for Type Traits (C++ Component Extensions) .