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 件のコメント:
コメントを投稿