001: クラス定義

std::vector と同じ動作をするクラス myvector を自作していきます。

myvectorクラスの方針は以下のようになります。

  • 準拠する C++ のバージョンは C++11。
  • cppreference.comを事実上のリファレンスとする。
  • アロケータの指定は無し。メモリ確保には malloc() と realloc() を使う。
  • ソースコードは github にコミットする。
  • テストプログラムは lest を使用する。


始めですので、まずはクラスの定義だけを行います。
/**
 * @class   myvector
 * @brief   myvector is a class which imitates std::vector.
 * @tparam  T: The type of the elements.
 */
template <typename T>
class myvector
{
};
本当に、クラスの定義だけです。
注意点として、std::vector では2番目のテンプレートパラメータとしてアロケータを指定しますが、myvector では2番目のテンプレートパラメータはありません。これは、myvector がアロケータの指定をサポートしていないためです。サポートしていない理由は色々ありますが、一番の理由は、アロケータの指定は滅多に行われない、ためです。


全ソースコード: https://github.com/suomesta/myvector/tree/master/001

0 件のコメント:

コメントを投稿