問題タブ [boost-range]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++11 - boost::any_range による boost::transformed_range のランダムアクセス
いくつかのレガシー コードで (ランダム アクセス タグを使用して) 使用しようとしてboost::any_range
いますが、ラムダが好きではないことがわかりました。コンパイル エラーは、ラムダ オブジェクトのデフォルト コンストラクターの欠如について不平を言っているようです。これは予想される動作ですか?それは設計によるものですか?私はブーストバージョン1.66のMSVC C++ 17を使用しています。
ドキュメントには、Transformed_range が入力範囲と同じカテゴリを持つことが記載されています。
boost::any_range
auto を使用するだけで機能するため、問題は明らかに のどこかにあります (rngneg_auto
以下を参照)。
最初の 2 つのケースでは、プログラムは出力します。
3番目はコンパイルエラーです(ラムダがデフォルトで構築できないためだと思います):