Ir ao conteúdo
  • Cadastre-se

como aplicar parametros em std::function e lambdas?


Cambalinho

Posts recomendados

ja consegui fazer a class events e funciona como preciso:

#include <iostream>
//#include "console.h"
#include <functional>

using namespace std;
//#define lambda []()

class events
{
public:
typedef std::function<void()> OnSomethingHandler;

events(OnSomethingHandler Handler)
{
handlers_=Handler;
}


void operator ()()
{
handlers_();
}

private:
OnSomethingHandler handlers_;

};

int main()

{

events my_foo ([]()
{
std::cout << "hello world\t" << std::endl;
});



my_foo();

return 0;
}

a mensagem é mostrada. e ja sei que os parametros na funcao sao metidos:

my_foo ([](argumento1,argumentox....)

mas nao estou a conseguir meter os argumentos e usar. por favor alguem me pode dar umas dicas?

Link para o comentário
Compartilhar em outros sites

eis o codigo completo

#include <functional>
#include <iostream>

template <typename ... b>
class events
{
public:
typedef std::function<void(b...argx )> OnSomethingHandler; //nota: como o primeiro parametro ja indica o numero infinito de parametros, tambem nos permite nao meter parametros

events(OnSomethingHandler Handler)
{
handlers_=Handler;
}


void operator ()(b... args)
{
handlers_(args...);
}

private:
OnSomethingHandler handlers_;

};

//teste com argumentos
int main()
{
events<int, int> foo([](int a, int
{
std::cout << (a+ << "\n";
});
foo(5,6);
}

//teste sem argumentos
int main()
{
events<> foo([]()
{
std::cout << "hello world" << "\n";
});
foo();
}

muito obrigado a este forum e aos que me ajudaram bastante. muito obrigado por tudo

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!