SSブログ

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

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

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

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

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

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

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

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

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

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。