I have a class that is suppose to be a base class:
template<int ID>
class BaseClass { ... };
How can I make a compile-time error appear if two classes try to inherit form this base class using the same value of ID. That is - this code is suppose to work:
class A : BaseClass<1> { ... }
class B : BaseClass<2> { ... }
But this code is suppose to cause an error:
class A : BaseClass<1> { ... }
class B : BaseClass<1> { ... }
How can one achieve this? Does BOOST_STATIC_ASSERT help?