私はしばらくの間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」のサブクラスのみを含むように制限するにはどうすればよいですか?