そ〜いえば書くの忘れてて Boost.Random の話が出たので思い出したけれど,
http://d.hatena.ne.jp/Cryolite/20050423#p2
この問題は
// variate_generator のテンプレート第1引数が参照型なのに注目! variate_generator<mt19937 &, uniform_int<> > rnd(rng, uniform_int<>(-1000,1000));
こう書けばよいことに気がついた.気がついたというか Boost.Random のテストコードがそうなってて気づかされた. TR1 のドラフトにも第1引数は値型か参照型かポインタ型を指定できるって書いてあったからそもそもこういう使い方を想定したのね…….