Meaning of this syntax

0

I need to continue a job that is partially ready. However I did not find on the internet files that described or taught this in an understandable way. What is the meaning of this syntax?  Ide: NetBeans and C ++ language

void Grafo::buscarElosEmProfundidade(No *origem, std::function<bool(No*, No*, Elo*)> func)

The original part I understand is a pointer, but is that part of std :: functio bool (No *, No *, Elo *) func)? What does this mean?

The full function is this:

void Grafo::buscarElosEmProfundidade(No *origem, std::function<bool(No*, No*, Elo*)> func){
ListaParEloPercorrido *percorridos = this->getPercorridos(false);
ListaParNoVisitado *visitados = this->getVisitados(false);
if(!origem->getElos()->empty())
this->buscarElosEmProfundidadeAux(*(origem->getElos()->begin()), origem, visitados, percorridos, func);
delete percorridos;
delete visitados;

}  I tried calling this function like this: fetchEmProvider (No * pointer) and gave error. What is the right way to call it then?

And it should not be void, right? For the purpose of this function is to return a list with nodes that are "attainable" from the source.

    
asked by anonymous 29.04.2017 / 03:31

1 answer

0

This std::function<bool(No*, No*, Elo*)>func notation indicates a pointer to a bool func(No*, No*, Elo*) prototype function that should be passed as a parameter in the buscarElosEmProfundidade function call.

You should do more or less like this:

// ...
// ...
// ...

// coloquei nomes genéricos na função e nos parâmetros porque não
// sei como serão usados, mas você deve colocar nomes explicativos
bool nomeFunc(No* no1, No* no2, Elo* elo)
{
   // ...
   // sua implementação
   // ...
}

// ...
// ...
// ...

No origem;

// ...
// ...
// ...

buscarElosEmProfundidade(&origem, nomeFunc);

// ...
// ...
// ...

PS. untested code.

    
29.04.2017 / 15:16