Boost総合スレ part7at TECHBoost総合スレ part7 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト234:デフォルトの名無しさん 09/03/21 09:35:01 BOOST_FOREACH(const int& i,C) も BOOST_FOREACH(int const& i,C) も同じ意味 235:デフォルトの名無しさん 09/03/21 09:37:23 そもそもconst int&でなくintにしてみたらどうだろう。 それでだめならforeachの実装覗くしかないんじゃね。 236:デフォルトの名無しさん 09/03/21 12:06:26 class step_iterator : public boost::iterator_facade<step_iterator,int , boost::bidirectional_traversal_tag> { public: explicit step_iterator(int v, int s = 1):value(v), step(s){} private: friend class boost::iterator_core_access; void increment() { value += step; } void decrement() { value -= step; } int& dereference() const { return value; } bool equal(const step_iterator& other) const { return value >= other.value; } int value; int step; }; 237:236 09/03/21 12:07:13 >>236 int に対する iterator で increment でstepずつ増やす iterator を 作ってみてるのですが、dereference() の箇所で error C2440: 'return' : 'const int' から 'int &' に変換できません。 とエラーになってしまいます。 メンバーのvalueをintへのポインターにして、dereference()で*valueを 返す様にしたら期待した動作をしてくれます。 また、const_cast しても期待した動作になります・・・ なぜ、int では駄目なのでしょうか? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch