is there a way to have a template class respond to missing stuff in a template type ?

Code:
template <typename Type>
class MyClass
{
public:
          enum { ID = Type::ID }; // revert to 1 if  Type::ID doesn't exist.
};
If the Type passed to the template has an ID member (required to be an enum or a static const int), use it, if it is missing revert to a default value.

I'm kind of hoping I can use this as a simplified way of configuring how MyClass works, without requiring Type to explicitely needing to define what it doesn't care about.

It needs to be resolved at compiletime, as it determines the number of elements in member array variables.