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