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 回答