有人知道std::bind的准确返回类型么。
不要说auto,本人的需求是要知道准确返回类型。
原因是本人想用boost::any来存储这个std::bind的返回值。
但解boost::any的时候,需要明确告知转换的类型。
不然没法使用,这个问题困扰挺长时间了,一直没搞定。
不要说auto,本人的需求是要知道准确返回类型。
原因是本人想用boost::any来存储这个std::bind的返回值。
但解boost::any的时候,需要明确告知转换的类型。
不然没法使用,这个问题困扰挺长时间了,一直没搞定。
解决方案
100
#include <boost/any.hpp>
#include <iostream>
#include <functional>
using namespace std;
using namespace boost;
class A
{
public:
void test(int n)
{
cout << n << endl;
}
};
int main()
{
A a;
//装进去
any fn1 = bind(&A::test, &a, placeholders::_1);
//拿出来用
_Bind<1, void, struct std::_Pmf_wrap<void(__thiscall A::*)(int), void, class A, int>, class A *, class std::_Ph<1> &> fn2 = any_cast<_Bind<1, void, struct std::_Pmf_wrap<void(__thiscall A::*)(int), void, class A, int>, class A *, class std::_Ph<1> &>>(fn1);
fn2(50);
return 0;
}
直接用确切类型也是可以的