- 356 名前:デフォルトの名無しさん [2011/02/28(月) 16:34:27.96 ]
- 質問です。
以下ページにあるC++0x用LINQメソッドを smellegantcode.wordpress.com/2009/01/26/linq-to-c0x/ 使用した結果をBOOST_FOREACHに入れて回そうとしたのですが、 コンパイルエラーとなってしまいます。 std::vector<int> array = { 1, 2, 3, 4, 5 }; auto result = from(array).where([] (const int & n) { return (n % 2) == 0; }); auto itr = result.begin(); // 通る BOOST_FOREACH (auto n, result) { } // コンパイルエラー ideone.com/Iu133 (boostの環境が作れなかったのでソース閲覧用に) iteratorのBOOST_FOREACHに対する要件が足りていないのかと思い、 iterator_adaptorやiterator_facadeを const_iteratorに継承させたりしてみたのですが、 私がこれらをあまり理解出来ていないこともあってか 最終的にコンパイルエラーを取り除くことが出来ませんでした。 (あとtypedef const_iterator iterator;も追加してみました) どなたか解決のヒントをいただけませんでしょうか?
|

|