binary_functionが廃止され、C++で削除される予定です17。私は異なる出版物を検索しましたが、それを置き換える正確な方法を見つけることができませんでした。私はどのようにC++ 11スタイルで次のコードを書くべきか知っておきたいと思います。binary_functionの代わりに
template <class T>
inline T absolute(const T &x) {
return (x >= 0) ? x : -x;
}
template <class T>
struct absoluteLess : public std::binary_function<T, T, bool> {
bool operator()(const T &x, const T &y) const {
return absolute(x) < absolute(y);
}
};
template <class T>
struct absoluteGreater : public std::binary_function<T, T, bool> {
bool operator()(T &x, T &y) const {
return absolute(x) > absolute(y);
}
};
EDIT:ループ
あなたがそれを必要とする理由?declutypeは 'binary_function'の必要なしに' operator() 'の型を調べることができます –
これらのテンプレート関数をどのように使いますか?答えは用途によって異なります。 – Rostislav
http://stackoverflow.com/a/22863957/642626どのように呼び出し可能オブジェクトの引数と戻り値の型を見つけるか。 –