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
@ 6502: Нет, потому что звезда принадлежит * возвращаемому типу * функции (которая сама является функцией, а для функции *, что звезда действительно находится внутри соответствующих круглых скобок. – celtschk
@ Fanatic23: Я уже писал об этом. Это заняло некоторое время. – celtschk