std::tr1::_Bind<void (*()(std::tr1::reference_wrapper<int>))(int&)>
我明白std::tr1::reference_wrapper<int>
,这整个事情是某种形式返回void
,并采取int&
作为参数的函数指针。但我似乎无法在开始时遵循*()。我从一些gdb会话中剪下来的代码正在经历一段时间。此模板中的类型是什么?
另外,tr1 :: function的类型是什么?一些函数返回void并且没有参数?
0x00000001000021a1 in std::tr1::function<void()()>::operator() (this=0x7fff5fbffb98) at functional_iterate.h:865
但是再下面是一个错误:
template <typename T>
void f()
{
cout << "general\n";
}
template<>
void f<void()()>() // this is error
{
cout << "specific\n";
}
应该不是明星是两个括号为之间? – 6502 2012-04-15 19:49:29
@ 6502:不,因为星星属于函数的返回类型*(它本身就是一个函数,并且对于*函数,星形确实在对应的圆括号内)。 – celtschk 2012-04-15 19:59:22
@ Fanatic23:我已经在写这篇文章了。它只是花了一些时间。 – celtschk 2012-04-15 20:00:22