44 votes

Utilisation de la fonction automatique dans une fonction lambda

<pre><code></code><p>Une fois compilé, l’exemple ci-dessus démarre la sortie d’erreur comme ceci : </p><pre><code></code></pre><p><code></code> ne doit pas être utilisé dans les expressions lambda ?</p><p>Cela fonctionne : </p><pre><code></code></pre><p>Pourquoi la version avec le mot-clé auto ne fonctionne pas ?</p></pre>

70voto

Jagannath Points 2326

Le mot-clé auto ne fonctionne pas comme type pour les arguments de fonction, en C++11. Si vous ne souhaitez pas utiliser le type réel dans les fonctions lambda, vous pouvez utiliser le code ci-dessous.

Le code de la question fonctionne très bien en C++ 14.

24voto

Blizzard Points 141

C++14 permet de déclarer les paramètres de la fonction lambda (fonction lambda générique) avec l’auto.

Pour plus de détails : http://en.cppreference.com/w/cpp/language/lambda

6voto

Mankarse Points 22800
<blockquote> <p>Cela signifie-t-il que le mot-clé auto ne doit pas être utilisé dans les expressions lambda ?</p> <p>Non. <code></code> <em>peut</em> être utilisé dans les expressions lambda. <code></code> ne peut pas être utilisé comme type de paramètre formel.</p></blockquote>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X