0
struct F
{
    int operator()(int a, int b) { return a - b; }
    bool operator()(long a, long b) { return a == b; }
};

F f;

int x = 104;

bind<int>(f, _1, _1)(x);        // f(x, x), i.e. zero

bind(f, ...) 構文に問題があるコンパイラもあります。移植性の理由から、上記を表現する別の方法がサポートされています。

boost::bind(boost::type<int>(), f, _1, _1)(x);

上記のように、コードは関数オブジェクト型に boost::type を使用します 。boost::type 実装がどこに含まれているかを知るには?

4

1 に答える 1

0

私は周りを見回して、以下の定義を見つけました。

// type.hpp
namespace boost {
  // Just a simple "type envelope". Useful in various contexts, mostly to work
  // around some MSVC deficiencies.
  template <class T>
  struct type {};
}
于 2017-10-03T17:10:28.650 に答える