So-net無料ブログ作成
検索選択

後ろにしか進まないもの [日記]

乗り物を思い浮かべてください。

自動車など多くの乗り物は、前にも後ろにも進むことが出来ます。

自転車や飛行機は、前にしか進めません。
(競技用自転車はバックも出来るし、飛行機も地上を走るときはバックできるけど、それは除外)

果たして、後ろにしか進まない乗り物は存在するのでしょうか。

「手漕ぎボートは後ろにしか進まないぞ」と思うかもしれませんが、本当にボートは後ろに進んでいるのでしょうか?
運転手(漕いでいる人)が後ろ向きに座っているだけで、ボートそのものは前に進んでいるのでは?

そんなわけで、
前か後ろのどちらかにしか進まないものは、その進行方向が前と呼ばれるという仮説を立ててみます。

それは兎も角。
なぜ、こんなことを考えていたかと言うと、

C++ の標準ライブラリには forward_iterator_tag はあるのに、backward_iterator_tag がなくて、bidirectional_iterator_tagforward_iterator_tag の派生クラスになっているからです。

// 実際の C++標準ライブラリのコード
struct forward_iterator_tag
{
};

struct bidirectional_iterator_tag : public forward_iterator_tag
{
};

単純に考えれば、「前にしか進まないもの」と「後ろにしか進まないもの」があって、その両方の特徴を併せ持ったものが「前後両方に進むもの」なのではないかと…

// 妄想
struct forward_iterator_tag
{
};

struct backward_iterator_tag
{
};

struct bidirectional_iterator_tag : public forward_iterator_tag, public backward_iterator_tag
{
};

で、「後ろにしか進まないもの」はありえるのかと………。


タグ:C++
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。