後ろにしか進まないもの [日記]
乗り物を思い浮かべてください。
自動車など多くの乗り物は、前にも後ろにも進むことが出来ます。
自転車や飛行機は、前にしか進めません。
(競技用自転車はバックも出来るし、飛行機も地上を走るときはバックできるけど、それは除外)
果たして、後ろにしか進まない乗り物は存在するのでしょうか。
「手漕ぎボートは後ろにしか進まないぞ」と思うかもしれませんが、本当にボートは後ろに進んでいるのでしょうか?
運転手(漕いでいる人)が後ろ向きに座っているだけで、ボートそのものは前に進んでいるのでは?
そんなわけで、
前か後ろのどちらかにしか進まないものは、その進行方向が前と呼ばれるという仮説を立ててみます。
それは兎も角。
なぜ、こんなことを考えていたかと言うと、
C++ の標準ライブラリには forward_iterator_tag
はあるのに、backward_iterator_tag
がなくて、bidirectional_iterator_tag
は forward_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++
2010-08-16 08:46
nice!(0)
コメント(0)
トラックバック(0)
コメント 0