C++ でメソッドチェインが流行らなかったのは参照の寿命管理が厄介だったからじゃね? いやまあ適当に言ってみただけです気にしないで下さい.実は単に偶然の産物という気もします. struct Odd { int dummy; }; struct Even { int dummy; }; Odd ToOdd(Even& source) { return Odd(); }; Even ToEven(Odd& source) { return Even(); }; Even operator >> (Odd& source, Even op(Odd &) ) { // 実用上はコピーなしに一時オブジェクトの参照を返したい // C++0x では解決かな? return op(source); } Odd operator >> (Even& source, Odd op(Even &) ) { r