ヘッダ
#include <boost/visit_each.hpp>
概要
visit_each
の機構は、visitor
を与えられたオブジェクトの全部分オブジェクトに対して適用することを可能にする。 これは Signals ライブラリによって関数オブジェクト中の trackable
オブジェクトを見つけ出すために使われているが、広く使われれば他の用途も出てくるだろう (例: 保守的ガベージコレクション)。 visit_each
フレームワークに適合させるため、各オブジェクト型に対して visit_each
のオーバーロードを提供する必要がある。
namespace boost {
template<typename Visitor, typename T>
void visit_each(Visitor&, const T&, int);
}
関数
template<typename Visitor, typename T> void visit_each(Visitor& v, const T& t, int);
-
作用:
v(t)
。 またt
のすべての部分オブジェクトx
に対してx
が参照であればv(boost::ref(x))
を実行。x
が参照でなければv(x)
を実行。
-
戻り値: なし。
- 注記:
<boost/visit_each.hpp>
中で定義されているvisit_each
の非特殊化版の第三パラメタはlong
であり、この第三パラメタに与える実引数は常に 0 でなければならない。 第三パラメタは、正しい関数テンプレートの部分整列の欠落が広まっているために設けられた人為的なものであり、将来削除されるだろう。 ライブラリ作者は、クラスのT
実引数を特殊化する追加のオーバーロードを加え、部分オブジェクトを訪ねられるようにすることが期待されている。
Last modified: Fri Oct 11 05:43:33 EDT 2002