C++

コンテナlistの実装:プログラミング原論(ステパノフ)の補助資料

今回はlistのテストを書きました。全ソースコードはプログラミング原論(ステパノフ)のこのページにあります。 #include<cassert> #include<cstddef> #include<new> #include<cstdlib> #define pointer(T) T* template<typename I, typename O> void copy_step(I& f_i, O& f_o) { sink(f_o) = source(f_i); f_o = succe</typename></cstdlib></new></cstddef></cassert>…

コンテナslistの実装:プログラミング原論(ステパノフ)の補助資料

プログラミング原論(ステパノフ)のサンプルコードはここにあるのですが、1万行を超えていることもあり、少し読むのに時間もかかります。ということで、単方向リンクリスト(slist)に関係するところだけ引っ張り出して、テストを書いてみました。他のコンテナ(…

トレイト・クラス

C++

トレイト・クラスと呼ばれる、C++のイディオムを使うと、型を返す関数(型関数)が作れます。型関数はテンプレートを利用して実現されていて、コンパイル時に実行されることになります。下の例だと、構造体input_typeがトレイト・クラスにあたり、InputType(型…