Boost.Function 提供了一个名为 boost::function 的类来封装函数指针。它在 boost/function.hpp 中定义。
如果您在支持 C++ 11 的开发环境中工作,您可以从头文件函数中访问类 std:: 函数。在这种情况下,您可以忽略 Boost.Function,因为 boost :: function 和 std :: function 是等价的。
例 40.1。使用 boost :: 函数
- #include <boost/function.hpp>
- #include <iostream>
- #include <cstdlib>
- #include <cstring>
-
- int main()
- {
- boost::function<int(const char*)> f = std::atoi;
- std::cout << f("42") << '\n';
- f = std::strlen;
- std::cout << f("42") << '\n';
- }
boost :: function 可以定义指向具有特定签名的函数的指针。示例 40.1 定义了一个指针 f,它可以指向需要 const char * 类型参数并返回 int 类型值的函数。定义后,可以将具有匹配签名的函数分配给指针。例 40.1 首先将函数 std::atoi() 分配给 f,然后将 std::str