Perguntas com a marcação «function-pointers»

Um ponteiro de função é um ponteiro para uma função, que pode ser armazenado em uma variável. Ele permite uma escolha em tempo de execução de qual função executar.


8
C ++ lambda com capturas como um ponteiro de função
Eu estava brincando com lambdas C ++ e sua conversão implícita em ponteiros de função. Meu exemplo inicial foi usá-los como retorno de chamada para a função ftw. Isso funciona conforme o esperado. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const …

7
Ponteiro de função para função-membro
Gostaria de configurar um ponteiro de função como membro de uma classe que é um ponteiro para outra função na mesma classe. Os motivos pelos quais estou fazendo isso são complicados. Neste exemplo, gostaria que a saída fosse "1" class A { public: int f(); int (*x)(); } int A::f() …

7
Transmitindo um ponteiro de função para outro tipo
Digamos que eu tenha uma função que aceita um void (*)(void*)ponteiro de função para uso como retorno de chamada: void do_stuff(void (*callback_fp)(void*), void* callback_arg); Agora, se eu tiver uma função como esta: void my_callback_function(struct my_struct* arg); Posso fazer isso com segurança? do_stuff((void (*)(void*)) &my_callback_function, NULL); Eu olhei para esta questão …


4
O que faz ((void (*) ()) buf) (); significar?
Estou resolvendo um desafio de exploração binária no picoCTF e me deparei com este pedaço de código: ((void (*)())buf)(); onde bufé uma matriz de caracteres. Eu resolvi o desafio, mas não consigo entender o que exatamente está fazendo. Eu olhei para esta discussão, mas não consegui entender. O que ((void …


2
Como a macro lambda cria uma lambda?
Encontrei este código no GitHub, mas não o entendi: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Então: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is 2 O que os …

1
Dedução de tipo incorreto ao passar o ponteiro de função sobrecarregado e seus argumentos
Estou tentando fornecer um invólucro std::invokepara deduzir o tipo de função mesmo quando a função está sobrecarregada. (Fiz uma pergunta relacionada ontem para a versão do ponteiro variável e do método). Quando a função possui um argumento, esse código (C ++ 17) funciona conforme o esperado em condições normais de …
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.