Preguntas etiquetadas con function-pointers

Un puntero de función es un puntero a una función, que se puede almacenar en una variable. Permite una elección en tiempo de ejecución de qué función ejecutar.


8
C ++ lambda con capturas como puntero de función
Estaba jugando con lambdas de C ++ y su conversión implícita a punteros de función. Mi ejemplo inicial fue usarlos como devolución de llamada para la función ftw. Esto funciona como se esperaba. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const …

7
Conversión de un puntero de función a otro tipo
Digamos que tengo una función que acepta un void (*)(void*)puntero de función para usar como devolución de llamada: void do_stuff(void (*callback_fp)(void*), void* callback_arg); Ahora, si tengo una función como esta: void my_callback_function(struct my_struct* arg); ¿Puedo hacer esto de forma segura? do_stuff((void (*)(void*)) &my_callback_function, NULL); He examinado esta pregunta y he …

7
Puntero de función a función miembro
Me gustaría configurar un puntero de función como miembro de una clase que es un puntero a otra función en la misma clase. Las razones por las que hago esto son complicadas. En este ejemplo, me gustaría que la salida fuera "1" class A { public: int f(); int (*x)(); …


4
¿Qué significa ((void (*) ()) buf) (); ¿media?
Estoy resolviendo un desafío de explotación binaria en picoCTF y encontré este código: ((void (*)())buf)(); donde bufhay una matriz de caracteres. Resolví el desafío pero parece que no puedo entender exactamente qué está haciendo. Miré este hilo pero no pude distinguirlo. Que ((void (*)())buf)();significa


2
¿Cómo crea la macro lambda una lambda?
Encontré este fragmento de código en GitHub pero no lo entendí del todo: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Entonces: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is …

1
Mala deducción de tipo al pasar el puntero de función sobrecargado y sus argumentos
Estoy tratando de proporcionar un contenedor std::invokepara hacer el trabajo de deducir el tipo de función incluso cuando la función está sobrecargada. (Hice una pregunta relacionada ayer para la versión de puntero variadic y método). Cuando la función tiene un argumento, este código (C ++ 17) funciona como se espera …
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.