std::tr1::_Bind<void (*()(std::tr1::reference_wrapper<int>))(int&)>
entiendo std::tr1::reference_wrapper<int>
y todo esto es una especie de puntero de función que devuelve void
y toma int&
como argumento. Pero al parecer no puedo seguir el *() al principio. El código está cortado y pegado de alguna sesión de gdb que estaba atravesando hace un tiempo.¿Cuál es el tipo en esta plantilla?
Además, ¿cuál es el tipo de función tr1 ::? ¿Alguna función que devuelve vacío y no toma ningún argumento?
0x00000001000021a1 in std::tr1::function<void()()>::operator() (this=0x7fff5fbffb98) at functional_iterate.h:865
Pero entonces el siguiente es un error:
template <typename T>
void f()
{
cout << "general\n";
}
template<>
void f<void()()>() // this is error
{
cout << "specific\n";
}
¿No debería ser la estrella entre los dos paréntesis para que? – 6502
@ 6502: No, porque la estrella pertenece al * tipo de retorno * de la función (que a su vez es una función, y para la función * that * la estrella está de hecho dentro de los paréntesis correspondientes. – celtschk
@ Fanatic23: Ya estaba en el proceso de escribir eso. Solo tomó algo de tiempo. – celtschk