remplacer la carte::comparer avec fonction lambda directement

Essayer de passer outre map::compare fonction à l'aide de lambda, il semble que la solution suivante œuvres.

auto cmp = [](const int&a, const int& b) { return a < b; };
std::map<int, int, decltype(cmp)> myMap(cmp);

Mais, j'ai dû définir cmp premier et l'utiliser plus tard.

Puis-je le faire sans que la définition de 'cmp'?

  • cmp n'est pas un pointeur de fonction.
  • Faire quoi? ints déjà de les comparer les uns aux autres. Qu'essayez-vous de faire? Et pourquoi ne veux-tu pas utiliser une fonction?
  • Ouais, pointeur de fonction n'était pas un terme précis. Modifié la question de rendre la question plus claire.
  • Alors, quelle approche avez-vous utilisé qui a échoué? Nous savons que vous voulez quelque chose autre que votre exemple, mais pas ce que votre objectif ultime est.
  • Mais ne peut pas captureless lambas être converti en un pointeur de fonction?
InformationsquelleAutor MBZ | 2013-08-04