Я давно не пользовался расширенными возможностями C ++ и обновляю свои знания C ++.
Сказав это, концепция черт и программирования, основанного на политике, была тем, что мне так и не удалось осознать.
Я хочу это изменить. Я пишу универсальный контейнер. Я хочу применить политику, согласно которой контейнер будет хранить только классы, производные от определенного базового класса. Это связано с тем, что контейнер возвращает недопустимый объект (вместо броска) при попытке получить доступ к элементу за пределами векторных границ.
template <class T>
class GenericContainer
{
private:
typedef std::vector<T> TypeVect;
void addElement(const T& elem);
TypeVect m_elems;
public:
unsigned int size() const;
T& elementAt(const unsigned int pos);
const T elementAt(const unsigned int pos) const;
};
Как бы я использовал черты, чтобы ограничить этот общий контейнер, чтобы он содержал только подклассы класса 'ContainerItem', скажем?