Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1559 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Que signifie [=] ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Que signifie [=] ?

n°2241960
Krismu
Posté le 01-11-2014 à 19:31:45  profilanswer
 

Bonjour,
 
Désolé de la question de noob le cas échéant, mais impossible de trouver l'info sur google ni nulle part.
Dans un code de démo j'ai:
 

Code :
  1. listener->onTouchBegan = [=](Touch* touch, Event* event){
  2.            
  3.             Vec2 locationInNode = this->convertToNodeSpace(touch->getLocation());
  4.             Size s = this->getContentSize();
  5.             Rect rect = Rect(0, 0, s.width, s.height);
  6.            
  7.             if (rect.containsPoint(locationInNode))
  8.             {
  9.                 this->setColor(Color3B::RED);
  10.                 return true;
  11.             }
  12.             return false;
  13.         };


 
Et donc je ne sais pas à quoi sert le [=] en rouge ... quelqu'un pourrait-il m'éclairer ?  
 
Merci


Message édité par Krismu le 02-11-2014 à 14:58:59
mood
Publicité
Posté le 01-11-2014 à 19:31:45  profilanswer
 

n°2241964
Terminapor
I'll see you rise.
Posté le 01-11-2014 à 22:18:25  profilanswer
 

C'est pour les fonctions lambda (C++11), ça permet de dire que tu captures des variables automatiquement par copie :
 

Code :
  1. int main()
  2. {
  3.     int a = 7;
  4.     auto X = [=]()->void { std::cout<<"a = "<<a<<std::endl; }; // On capture tout par copie
  5.     auto Y = [&]()->void { std::cout<<"a = "<<a<<std::endl; }; // On capture tout par ref  
  6.     a = 2;
  7.     X(); // Affichera 7
  8.     Y(); // Affichera 2
  9. }


---------------
Perhaps you don't deserve to breathe
n°2241965
el muchach​o
Comfortably Numb
Posté le 01-11-2014 à 22:31:43  profilanswer
 

Capture par copie. Toutes les variables auxquelles ta lambda (C++11) se réfère et qui proviennent du contexte englobant sont copiées dans la lambda (capture par valeur).  
http://www.oracle.com/technetwork/ [...] 89895.html
 
En l'occurence, dans ton bout de code, cela ne fait aucune différence car il n'y a pas de référence à des variables englobantes autres que this.
 
> "impossible de trouver l'info sur google ni nulle part. "
 
Google "C++ lambda expression", il y a plein d'infos la-dessus.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2241982
Krismu
Posté le 02-11-2014 à 12:06:11  profilanswer
 

Merci pour ces infos :jap:  
 
Bon je crois que je vais devoir sortir des années 80 concernant le C++ :sweat:  

n°2242019
TotalRecal​l
Posté le 02-11-2014 à 19:43:45  profilanswer
 

Pour info, à propos de "l'impossibilité de trouver sur google" ce genre d'info, la plupart (voire tous) des moteurs de recherche filtre les caractères spéciaux et la ponctuation dans les expressions de recherche. Donc effectivement très ennuyeux pour chercher sur un opérateur à la syntaxe exotique.

 

Une astuce à connaître pour pallier ça et au moins savoir à quoi tu as affaire c'est de lancer la même recherche sur StackOverflow par exemple : http://stackoverflow.com/search?q=%22[%3D]%22+c%2B%2B (lien à copier entièrement, le forum n'aime pas les crochets)
Le premier résultat t'aurait déjà bien orienté : http://stackoverflow.com/questions [...] -functions


Message édité par TotalRecall le 02-11-2014 à 19:47:40

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2242020
Krismu
Posté le 02-11-2014 à 19:47:48  profilanswer
 

Ah ouais super info, j'ai essayé à droite à gauche mais les sites embarquent souvent la recherche google, du coup ça donnait rien.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Que signifie [=] ?

 

Sujets relatifs
[VB.net] que signifie << ?Que signifie cette déclaration ?
Que signifie chaine[i]='\0';Sujet : Que signifie le signe % sous XML ?
[résolu] Que signifie : ~Que signifie "inherited handle"?
Que signifie ce message d'erreur [débutant]Que signifie un logiciel IDE
[MySQL Query Browser] Que signifie les deux temps d'exécution?[UML] Qu'est ce que cette notation signifie ?
Plus de sujets relatifs à : Que signifie [=] ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR