IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[idiom/hack] : Named operators


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut [idiom/hack] : Named operators
    Salut.

    Je viens de tomber par le plus grand des hasards sur cette page : named operators.

    Il y a tous les d�tails sur la page, et je pr�f�re juste poster les exemples qui sont parlant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    auto result = "Hello" <repeat> 3 <join> ", "; std::cout << result << '\n';
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    int x = 42; int y = 23; auto z = x <divmod> y; // calculates { x / y, x % y }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    vector<int> vec{ 1, 2, 3 }; vec <append>= 4; // same as: vec = vec <append> 4;
    Que pensez vous de cette approche ?
    Peut elle am�liorer l�expressivit� du code selon vous ?
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

  2. #2
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    C'est rigolo, mais je crains que cela trop alien pour pouvoir le proposer sur un projet maintenu par plusieurs personnes.
    � la limite, une biblioth�que pourrait volontairement proposer ce genre d'interface � ses utilisateurs.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  3. #3
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    Citation Envoy� par Luc Hermitte Voir le message
    C'est rigolo, mais je crains que cela trop alien pour pouvoir le proposer sur un projet maintenu par plusieurs personnes.
    � la limite, une biblioth�que pourrait volontairement proposer ce genre d'interface � ses utilisateurs.
    C'est vrai que cest deroutant, surtout que ya pas de macro ou d'autres trucs wtf.

    Mais dans le cadre de la cr�ation de biblioth�ques, tu peux gagner beaucoup en expressivit� en compl�ment des op�rations plus classiques .
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    L'id�e est int�ressante.

    C'est dommage d'avoir un symbole instanci� dans le scope pour servir d'"objet interm�diaire" comme expliqu� alors que fonctionnellement, �a ne sert qu'� la compilation. On peut peut-�tre ruser avec des const_expr mais je suis pas s�r que �a soit aussi bon qu'un appel de fonction au niveau du code g�n�r�.

  5. #5
    Membre actif
    Homme Profil pro
    Ing�nieur
    Inscrit en
    Octobre 2006
    Messages
    48
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2006
    Messages : 48
    Par d�faut
    @jblecanard : le compilateur sait inliner des foncteurs de sorte qu'il n'y ait pas de trace de l'objet dans le code g�n�r�. Les foncteurs sans �tat sont depuis le d�but (depuis la STL ? avant ?) un hack du C++ permettant de transmettre un type plut�t qu'un pointeur de fonction justement pour permettre au compilateur d'inliner le code correspondant. Donc je ne pense pas que ce soit r�ellement un probl�me si l'on compile avec optimisation au max.

    Apr�s on devrait pouvoir faire la m�me chose avec des expressions templates et des string template (possible avec un hack assez furieux) mais la pour le coup bonjour les logs de compilation en cas d'erreur

    Edit:
    J'oublie de donner mon avis sur le sujet.
    Pour r�pondre � la question, je pense que le C++ manque cruellement de simplicit� d'utilisation. D�s que l'on cherche � am�liorer la lisibilit� du code en cr�ant/utilisant des biblioth�ques DSEL on se retrouve avec du boost et template � gogo (proto ? phoenix ? spirit ? ublas ?).
    J'aime boost et j'aime les templates d'une fa�on g�n�rale mais sans vouloir remettre en cause la qualit� des biblioth�ques de boost, je trouve que le C++ manque d'API simple et efficace et �vitant au maximum les logs de compilation interminables en cas d'erreur. Le vrai probl�me avec ce genre de hack simple, c'est qu'il est trop simple pour se d�mocratiser en C++.

    Il serait temps que le C++ �volue encore vers plus de simplicit� :
    - A quand les modules ?
    - A quand des biblioth�ques "python-like" en C++ ?
    - A quand les concepts ?

  6. #6
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    Apr�s on devrait pouvoir faire la m�me chose avec des expressions templates et des string template (possible avec un hack assez furieux) mais la pour le coup bonjour les logs de compilation en cas d'erreur
    Tu es libre d�am�liorer la chose.


    Pour r�pondre � la question, je pense que le C++ manque cruellement de simplicit� d'utilisation. D�s que l'on cherche � am�liorer la lisibilit� du code en cr�ant/utilisant des biblioth�ques DSEL on se retrouve avec du boost et template � gogo (proto ? phoenix ? spirit ? ublas ?).
    J'aime boost et j'aime les templates d'une fa�on g�n�rale mais sans vouloir remettre en cause la qualit� des biblioth�ques de boost, je trouve que le C++ manque d'API simple et efficace et �vitant au maximum les logs de compilation interminables en cas d'erreur. Le vrai probl�me avec ce genre de hack simple, c'est qu'il est trop simple pour se d�mocratiser en C++.
    Je suis bien d'accord. Plus le temps passe, plus le langage s�enrichit (et se complexifie !). Et mon ressenti global est qu'on peut faire des choses vraiment g�niales, mais que les fondations sont des m�andres de complexit�.


    - A quand les modules ?
    Je suis pas sur de ce que les modules veulent recouvrir. PCH g�n�ralis�s? Auto g�n�ration des headers ?

    Ca simplifiait le dev, et encore, je suis pas convaincu par les fichiers uniques de Java. Avoir le header permet de connaitre directement ce que fait la classe.


    - A quand des biblioth�ques "python-like" en C++ ?
    Je connais pas, tu peux d�tailler ?
    - A quand les concepts ?
    La r�ponse ici : http://www.cs.ox.ac.uk/ralf.hinze/WG...des/bjarne.pdf
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

Discussions similaires

  1. R�ponses: 7
    Dernier message: 13/11/2009, 17h00
  2. No operation name specified!
    Par Mr.ux dans le forum Services Web
    R�ponses: 3
    Dernier message: 10/10/2008, 14h15
  3. [XSL] ins�rer une balise <a name>
    Par guibong dans le forum XMLRAD
    R�ponses: 2
    Dernier message: 01/08/2003, 15h04
  4. TXMLModule.create - name = resource not found
    Par pram dans le forum XMLRAD
    R�ponses: 2
    Dernier message: 04/03/2003, 10h54
  5. naming service
    Par manuel dans le forum CORBA
    R�ponses: 6
    Dernier message: 09/12/2002, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo