Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++ > Bibliothèques > Boost
Boost Forum d'entraide C++ sur Boost
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/12/2012, 23h55   #1
SalutAVous
Futur Membre du Club
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2011
Messages : 34
Points : 18
Points : 18
Par défaut [Boost MPL] Les integral sequence wrappers ?

Bonsoir,

Je découvre tout juste Boost MPL et j'ai déjà du mal à comprendre certaines choses.

J'ai commencé le tutoriel (Tutorial: Metafunctions and Higher-Order Metaprogramming) par le début et donc par ce qui concerne l'analyse dimensionnelle.
Je comprends à peu près comment ça marche mais là ou je bloque c'est quand ça parle de "integral sequence wrappers" (l'anglais ne m'aidant pas...)

Pourquoi ce sont des "integral sequence wrappers" qui sont utilisées pour représenter des dimensions ?
On utilise des boost::mpl::vector_c pour représenter les dimensions. Quels sont les avantages par rapport à un simple vector ?

(Car j'ai l'impression que les "integral" et les "wrappers" sont souvent utilisés dans Boost MPL)

Merci.
SalutAVous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 01h44   #2
Flob90
Modérateur
 
Avatar de Flob90
 
Homme Florian Blanchet
Etudiant en Optique
Inscription : août 2004
Messages : 1 060
Détails du profil
Informations personnelles :
Nom : Homme Florian Blanchet
Âge : 22
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Etudiant en Optique

Informations forums :
Inscription : août 2004
Messages : 1 060
Points : 2 492
Points : 2 492
Bonsoir,

Pouvez-vous donner le lien du tutorial ?

Citation:
On utilise des boost::mpl::vector_c pour représenter les dimensions. Quels sont les avantages par rapport à un simple vector ?
mpl::vector_c est l'équivalent d'un std::vector<int> mais à la compilation, c'est tout l'objectif de MPL, créer l'équivalent à la compilation de ce qui peut exister à l’exécution.
__________________
"We can solve any problem by introducing an extra level of indirection" Butler Lampson

"N'importe quel problème peut être résolu en introduisant un niveau d'indirection supplémentaire" Butler Lampson (traduction libre)
Flob90 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2012, 09h52   #3
SalutAVous
Futur Membre du Club
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2011
Messages : 34
Points : 18
Points : 18
Bonjour,

Oui voilà le lien du tuto (c'est celui de la doc) : http://www.boost.org/doc/libs/1_52_0...imensions.html


Citation:
mpl::vector_c est l'équivalent d'un std::vector<int> mais à la compilation, c'est tout l'objectif de MPL, créer l'équivalent à la compilation de ce qui peut exister à l’exécution.
Ah d'accord je comprends mieux. Après tout c'est vrai que boost mpl est une bibliothèque pour la métaprogrammation.
Cela permet de faire de l'analyse dimensionnelle à la compilation.

Et le reste (integral sequence wrappers, int_<N>, etc...) c'est ce qui est utilisé en interne par la bibliothèque pour permettre d'utiliser des vectors à la compilation (vector_c) ?
SalutAVous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 19h02   #4
Flob90
Modérateur
 
Avatar de Flob90
 
Homme Florian Blanchet
Etudiant en Optique
Inscription : août 2004
Messages : 1 060
Détails du profil
Informations personnelles :
Nom : Homme Florian Blanchet
Âge : 22
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Etudiant en Optique

Informations forums :
Inscription : août 2004
Messages : 1 060
Points : 2 492
Points : 2 492
Citation:
Cela permet de faire de l'analyse dimensionnelle à la compilation.
Oui, enfin c'est qu'un exemple, on peut en trouver d'autre.

Citation:
Et le reste (integral sequence wrappers, int_<N>, etc...) c'est ce qui est utilisé en interne par la bibliothèque pour permettre d'utiliser des vectors à la compilation (vector_c) ?
vector_c c'est "juste" un raccourci :
Code :
1
2
 
mpl::vector_c<T,a,b,c,d> = mpl::vector<mpl::integral_c<T,a>,mpl::integral_c<T,b>,mpl::integral_c<T,b>,mpl::integral_c<T,b>>
De la même manière, int_ est un "raccourci" pour (*) :
Code :
1
2
 
mpl::int_<a> = mpl::integral_c<int,a>
(*) C'est pas écrit en tant que raccourci dans le "code", mais c'est sémantiquement équivalent.
__________________
"We can solve any problem by introducing an extra level of indirection" Butler Lampson

"N'importe quel problème peut être résolu en introduisant un niveau d'indirection supplémentaire" Butler Lampson (traduction libre)
Flob90 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2012, 12h16   #5
SalutAVous
Futur Membre du Club
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2011
Messages : 34
Points : 18
Points : 18
D'accord c'est en fait plein de raccourcis qui facilitent le code. Il faut que je lise la doc en même temps.

Merci pour la réponse.
SalutAVous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 13h16   #6
leternel
Expert Confirmé
 
Homme Pierre
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 1 191
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 1 191
Points : 2 518
Points : 2 518
Citation:
Envoyé par SalutAVous Voir le message
Il faut que je lise la doc en même temps.
Encore mieux, il faut que tu lises la doc AVANT.
Ce n'est pas pour rien que tu passes ton permis avant de conduire, ou que tu apprends à marcher avant de faire du vélo…
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
  • Une variable de moins est une source d'erreur en moins.
  • Un pointeur de moins est une montagne d'erreurs en moins.
  • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
  • La plus sotte des questions est celle qu'on ne pose pas.
leternel est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/12/2012, 14h39   #7
SalutAVous
Futur Membre du Club
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2011
Messages : 34
Points : 18
Points : 18
Citation:
Envoyé par leternel Voir le message
Encore mieux, il faut que tu lises la doc AVANT.
Ce n'est pas pour rien que tu passes ton permis avant de conduire, ou que tu apprends à marcher avant de faire du vélo…

C'est vrai. En général je préfère faire des tutos avant d'attaquer la doc, histoire de ne pas trop être "dépaysé". Mais en fait c'est pas toujours la meilleure façon de faire.
Merci.
SalutAVous est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h16.


 
 
 
 
Partenaires

Hébergement Web