From: Kazuhiro Nishiyama <nishiyama / mx1.tiki.ne.jp>
Subject: [ruby-list:19933] [book]
Date: Mon, 27 Dec 1999 23:59:14 +0900
Message-ID: <38677EBA3C.032CNISHIYAMA / mx1.tiki.ne.jp>

nishiyama> p.230
nishiyama> C++の例が変だと思います。
nishiyama> ほとんど変更せずに直すならこんな感じだと思います。
nishiyama> コンパイルできるように前後もつけてみました。

おいらも変だと思ったんだけど、
そもそも、今のC++だったら、

//Stroustrup pp. 54-55
list<Entry> phone_book;
void print_entry(const string& s)
{
	typedef list<Entry>::const_iterator LI;
	for(LI i = phone_book.begin();i != phone_book.end(); ++i){
	       Entry& e = *i;
	       if(s == e.name) cout<< e.name << ' ' << e.number << '\n';
       }
}
というような書き方になるそうな。

Ruby本p.230を変更するなら、

#include<list>
// ...
list<Item> alist;
for(list<Item>::iterator p = alist.begin(); p != alist.end(); ++p){
	Item& item=*p;
	//各要素に対する処理
	}
くらいの雰囲気ですね。Itemの定義があればこれで
コンパイルできるでしょう。(未確認)

ちなみに"The C++ Programing Languae third edition"の
indexにはcursorという言葉は出てきません。

あと、Ruby本はもうちょっとindexが充実すると
さらに良くなると思います。
たとえば、C++ -> 230がないし、
cursor, iteratorはどちらもindexにのっていない。
イテレータはあるけどカーソルはない。