将模板函数分配给 boost::function
Assign a template function to boost::function
我想做一些类似这个玩具程序的事情:
#include <boost/function.hpp>
#include <iostream>
template <typename T>
void func1(T& g) {
std::cout << 1;
}
template <typename T>
void func2(T& g) {
std::cout << 2;
}
int main() {
boost::function<void(int)> f;
int k;
std::cin >> k;
if (k == 1)
f = func1 < int > ;
else
f = func2 < int > ;
}
但是这段代码不起作用,它说"operator="不清楚。有什么方法可以做这样的事情吗?
更改以下内容:
boost::function<void(int)> f;
对此:
boost::function<void(int&)> f;
以便它与您的功能匹配。
在其他新闻中,C++11标准基本上采用boost::function
作为std::function
,标题<functional>
。
相关文章:
- 如何将类成员函数与param绑定为boost::function的右值
- 自 1.55 以来,boost::bind / boost::function 中的奇怪行为变化
- 将 boost::function 与指向派生类的共享指针的参数一起使用
- 将 boost::function 和 boost::bind 替换为模板
- 如何从“boost::function”中获取 C 指针(如 'var (*)(vo
- 如何使用 boost::bind 将静态成员函数绑定到 boost::function
- 以 C++11 方式重写 boost 风味代码(Boost.Bind、Boost.Function)
- Boost:bind and Boost::function
- 将模板函数分配给 boost::function
- boost::function 和 std::tr1::function 之间是否有重要的区别需要了解
- 将 boost::function 与实例方法一起使用
- 将 Python 函数作为 Boost.Function 参数发送
- 将 C++11 std::function 传递给采用 boost::function 的遗留函数是否安全?
- 将 boost::function 转换为 std::function
- 使用 boost::bind 和 boost::function 将成员函数分配给回调
- 将赋值运算符绑定到 boost::function 对象
- 如何在"boost::function"中访问类实例(对象)指针?
- llvm g++ and boost function
- Using boost::function and boost::bind
- 为什么使用boost::function调用函数对象时不需要类实例