Предотвратить наследование двух классов от базового класса с одинаковыми аргументами шаблона

У меня есть класс, который предположительно является базовым классом:

template<int ID>
class BaseClass { ... };

Как я могу сделать компиляцию- ошибка времени появляется, если два класса пытаются наследовать от этого базового класса, используя одно и то же значение ID. То есть - этот код должен работать:

class A : BaseClass<1> { ... }
class B : BaseClass<2> { ... }

Но этот код должен вызвать ошибку:

class A : BaseClass<1> { ... }
class B : BaseClass<1> { ... }

Как можно этого добиться? Помогает ли BOOST_STATIC_ASSERT?

6
задан Naveen 14 March 2011 в 12:25
поделиться