問題タブ [bind2nd]

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.

0 投票する
3 に答える
4174 参照

gcc - Eigen & GCC 5 : クラス std::binder2nd は非推奨です

数か月間保留されていたプロジェクトの作業を再開しました。前回コンパイルしたときは、エラーも警告もなく、問題なく動作していました。しかし、今日早くコンパイルしようとしたときに、この警告が表示されました

この警告は、プロジェクト全体で使用する Eigen/Geometry を含めると、文字通り何百回も表示されます。

それ以来、私は Eigen を更新していません (現在も最後の更新である 3.2.4 を使用しています)。ただし、前回コンパイルしてから、GCC は 5.1.0 に更新されています (archlinux を使用しています)。

質問:

  • std::binder2nd が非推奨であることを示す gcc 5.1.0 に関する問題はありますか
  • Eigen を更新する必要がありますか?
  • ビルドの冗長性を失うことなく、これらの特定の警告を黙らせるにはどうすればよいですか?

答え

std::bind2ndそれは本当に非推奨であり、Eigen でそれを解決するためにコミットが行われたことを認めます。ただし、このコミットはまだマスター ブランチとマージされていません :/ ( std::bind2ndEigen のコードにまだ存在するため、問題は解決しません)

要点: Eigen の最後の安定版は非推奨です

0 投票する
3 に答える
8436 参照

c++ - std::bind2nd の代替

私は を持ってfoostd::vector<int>ます。一連の範囲の「エッジ」値を表します。

たとえば、foo{1, 3, 5, 7, 11} の場合、範囲は 1 ~ 3、3 ~ 5、5 ~ 7、7 ~ 11 です。私にとって重要なのは、これが 4 ピリオドに相当することです。各ピリオドには、範囲の最後の数値ではなく、最初の数値が含まれることに注意してください。したがって、私の例では、8 は 3 番目 (ゼロベース) のピリオドに表示されます。3期にも7が登場。11 以上はどこにも表示されません。2 は第 0 ピリオドに表示されます。

barである aが与えられた場合int、私は使用します

を含むべきピリオドを教えてくださいbar

私の問題:std::bind2nd非推奨なので、リファクタリングする必要があります。更新された関数を使用した同等のステートメントは何ですか? std::bind明らかな方法で「立ち寄る」ことはありません。

0 投票する
3 に答える
275 参照

c++ - for_each ループの bind2nd

現在、頭を悩ませていることがあります。各要素が 1 ずつ増加する出力を期待していましたが、明らかにそうではありません。

よく見てみると、bind2nd 関数の戻り値が破棄されているためだと思います。つまり、関数はコンテナーの要素を変更しません。

私の考えは正しいですか?コンテナーが変更されていないことについて、誰かが確認または正しい説明を提供できますか?

0 投票する
0 に答える
702 参照

c++ - エラー C2039: 'bind2nd': 'std' のメンバーではありません

VS2008 C++ プログラムを VS2017 に変換しようとしていますが、次のエラーが発生します。

いくつかの検索を行ったところ、int を size_t にするという推奨事項が 1 つ見つかりましたが、効果はありませんでした。これ以上の考えはありますか?