Boost総合スレ part7
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドの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 では駄目なのでしょうか?
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4303日前に更新/71 KB
担当:undef