CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Projet meta programmation C++

[denshaotoko]
[denshaotoko]
Niveau 25
30 mai 2016 à 20:41:00

Salut,

je cherche une idée de projet pour m'améliorer en meta prog c++

histoire de bien voir dans quel cas ça peut être très avantageux, comme ça je pourrais ensuite plus facilement introduire ça dans mes anciens et futures projets, si besoin est

des idées? merci

Message édité le 30 mai 2016 à 20:41:38 par [denshaotoko]
katk
katk
Niveau 10
30 mai 2016 à 20:53:09

en general la meta prog c'est pas mal utilise dans des librairies, enfin de celles que j'ai utilise en tout cas

[denshaotoko]
[denshaotoko]
Niveau 25
30 mai 2016 à 21:00:26

Le 30 mai 2016 à 20:53:09 katk a écrit :
en general la meta prog c'est pas mal utilise dans des librairies, enfin de celles que j'ai utilise en tout cas

ouais, des librairies header only, comme glm, ou catch, je trouve ça super pratique

rangerprice
rangerprice
Niveau 10
30 mai 2016 à 23:26:07

Tu devrais t'amuser à faire ton compilateur calculer à t'as place avec des templates, ça améliora bien ton lvl dans la méta prog.

Par exemple à la compilation tu fais ton compilateur travailler sur une expression mathématique, ou tu peux aussi lui faire bêtement trier des mots dans un dictionnaire :hap:

En utilisant les templates biensure.

Jettes à un coup d'oeil à ce petit code qui calcule le carrée de 5 que j'ai fais vite fais http://cpp.sh/2ys2

J'ai testé le code et ça retourne bien le carrée de 5.(clique sur "run") Et puisque tout les calcules sont fait par le compilateur, alors c'est de la meta programmation.
Tu peux te servir du compilateur pour trier des mots dans un dictionnaire, lui faire calculer une expression mathématique plus complexe qu'un simple carrée...ect :hap:

Message édité le 30 mai 2016 à 23:28:16 par rangerprice
godrik
godrik
Niveau 30
31 mai 2016 à 01:29:23

Je ne connais pas de bon projet pour s'entrainer en meta programmation. C'est une technique qui apparait dans certains projets et pas dans d'autre. Perso, je m'en suis servi pas mal dans spart ( http://bmi.osu.edu/hpc/software/spart/ ) pour abstraire les concepts de "probleme 1D" qui peuvent en fait etre des projections de probleme de plus haute dimension et ne pas avoir a reecrire le code.

LGV
LGV
Niveau 28
31 mai 2016 à 03:38:08

Dans un projet on n'applique que ce que l'on sait deja ; je recommenderais plutot la lecture de Modern C++ Design de Andrei Alexandrescu - une reference classique sur la metaprogrammation dans ce langage

rangerprice
rangerprice
Niveau 10
31 mai 2016 à 04:25:45

j'approuve également le livre de Andrei Alexandrescu, je l'ai lu et il est très bien :hap:

[denshaotoko]
[denshaotoko]
Niveau 25
31 mai 2016 à 05:00:48

Le 30 mai 2016 à 23:26:07 rangerprice a écrit :
Tu devrais t'amuser à faire ton compilateur calculer à t'as place avec des templates, ça améliora bien ton lvl dans la méta prog.

Par exemple à la compilation tu fais ton compilateur travailler sur une expression mathématique, ou tu peux aussi lui faire bêtement trier des mots dans un dictionnaire :hap:

merci pour les suggestions, ouais je pense que je vais faire ça, intégrer un peu plus de programmation générique et de meta programmation si nécessaire dans mes anciens projets

En utilisant les templates biensure.

Jettes à un coup d'oeil à ce petit code qui calcule le carrée de 5 que j'ai fais vite fais http://cpp.sh/2ys2

J'ai testé le code et ça retourne bien le carrée de 5.(clique sur "run") Et puisque tout les calcules sont fait par le compilateur, alors c'est de la meta programmation.

la variable carree dans cet exemple sera calculé à l’exécution car il y a un embranchement de if qui n'est valué qu'à l’exécution, carree n'aura une valeur qu'à l'execution

pour t'en convaincre tu peux ajouter "constexpr" au début de carree : http://cpp.sh/
ça fera cette erreur de compilation : error: call to non-constexpr function 'int f(NUMBER, BOOL) [with NUMBER = int; BOOL = bool]'

mais il n'y a pas grand chose normalement à changer dans ton exemple : http://cpp.sh/92k3t

ou comme ça http://cpp.sh/9g4d après c'est plus pour des calculs récursif, où là c'est nécessaire d'avoir une expression constante en valeur de retour pour qu'elle soit paramètre template à la récursion suivante

Le 31 mai 2016 à 01:29:23 godrik a écrit :
Je ne connais pas de bon projet pour s'entrainer en meta programmation. C'est une technique qui apparait dans certains projets et pas dans d'autre. Perso, je m'en suis servi pas mal dans spart ( http://bmi.osu.edu/hpc/software/spart/ ) pour abstraire les concepts de "probleme 1D" qui peuvent en fait etre des projections de probleme de plus haute dimension et ne pas avoir a reecrire le code.

ah j'ai fait un projet qui y ressemble, sauf qu'au lieu de paver l'espace avec des rectangles/parallepipede/etc, je devais paver l'espace avec des simplexes et que le code soit générique pour n'importe quelle dimension

d'ailleurs je pense que ça peut être une bonne idée que je fasse un topic de code review sur ce projet pour que vous me disiez où il peut être amélioré ou corrigé s'il y a des sources d'erreurs etc

Le 31 mai 2016 à 03:38:08 LGV a écrit :
je recommenderais plutot la lecture de Modern C++ Design de Andrei Alexandrescu - une reference classique sur la metaprogrammation dans ce langage

merci pour la référence, je connaissais ce livre de nom mais je ne savais pas qu'il s'agissait d'une référence en metaprogrammation

Dans un projet on n'applique que ce que l'on sait deja

oui, dans un projet professionnel j'imagine, là je parlais plutôt de projet à but pédagogique, donc mettre en exercice des choses que je ne maîtrise pas très bien pour apprendre et consolider justement

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment