Re,
J'en déduis qu'il n'y a pas d'inconvénients... :mrgreen:
La technique employée porte un nom ou il faut directement regarder ce qui est fait dans boost pour en comprendre le mécanisme?
Version imprimable
Si des inconvénients y'en a, mais c'est moins objectif :p. Sa rallonge les temps de compilations, je suis pas super fan non plus de la syntaxe pour déclarer une fonction (macro).
Pour l'implémentation : je te laisse chercher, ça m'a jamais intéressé donc j'ai jamais regardé. (et non y'a pas de "nom de technique").
Récemment une approche basé sur un DSEL à été pondu, plus comme une PoC qu'autre chose, j'aimais mieux la syntaxe. (mais les temps de compilation était à la hausse évidemment)
Mais plus généralement j'en ai jamais eu le besoin, j'ai appris à vivre sans vu que le core language ne le supporte pas.
Bon, alors je vais jeter un oeil aux sources! :D
La dite version EDSL.
http://github.com/jfalcou/boosties/tree/master/options
Y a une version mieux que je n'ai pas encore pushé
vous êtes combien à bosser dessus
Sur quoi? boost.parameter ? ils sont deux je crois.
Trois pour la version EDSL :p. (qui n'a aucun rapport avec BP)
et en deux mots la version EDSL change quoi, juste une autre syntaxe ?
Bonsoir,
sans vouloir prendre la défense de koala01 (mais un petit peu quand même), je ne suis pas sûr que ta question initiale ait un quelconque rapport avec le fait qu'on utilise ou non boost::parameter.
En ce qui me concerne, je n'ai toujours pas compris où tu as vu une erreur de syntaxe et ce qui te permet d'affirmer que ce n'est pas du C++ valide.
là c'est les bases, la syntaxe sans boost.paramater n'est bien évidement pas du C++ valide, en C++ core langage une fonction ne peut pas avoir ses arguements nommésCitation:
je n'ai toujours pas compris où tu as vu une erreur de syntaxe et ce qui te permet d'affirmer que ce n'est pas du C++ valide
session.queueDeclare(arg::queue=queue, arg::arguments=qo); cette syntaxe est précisement possible via boost.paramater
Citation:
je n'ai toujours pas compris où tu as vu une erreur de syntaxe et ce qui te permet d'affirmer que ce n'est pas du C++ valide
là c'est les bases, la syntaxe sans boost.paramater n'est bien évidement pas du C++ valide, en C++ core langage une fonction ne peut pas avoir ses arguements nommés
session.queueDeclare(arg::queue=queue, arg::arguments=qo); cette syntaxe est précisement possible via boost.paramater
C'est con, ca compile sans soucis .... et sans boost. Le plus fort ? C'est normal (opérateur virgule, tout ca). La réponse a été donnée avant (post #5).Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <iostream> namespace N{int a=0,b=0;} void foo(int n,int q) { std::cout<<n<<"//"<<q<<std::endl; } int main(int argc, char const *argv[]) { foo(N::a=42,N::b=666); std::cout<<N::a<<"!!"<<N::b<<std::endl; return 0; }
De mémoire (sans garantie de ma part) , Le truc génant avec ce genre de pratique, c'est que l'ordre d'évaluation des paramètres est indéfini. Donc dans le cas où les affectations sont des constantes, ca rulz niquel. Mais si les affectations sont des valeurs de retour de fonction avec des effets de bords (fonction non pure au sens fonctionnel) , c'est génant.
c'est con oui.je comprends pleinement dorénavant la remarque de koala ainsi que celle de son "avocat" :mrgreen:.
reste que je vois mal l'intérêt de la chose ....
PS: si t'as un lien ou une explication pour l'shitoire de l'operateur , je suis preneur
Non mais là c'est du boost.parameter, cherchez pas!
c'est à dire
je suis largué niveau de l'histoire de la " , "
C'est du bullshit cette phrase : Le plus fort ? C'est normal (opérateur virgule, tout ca).
?