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 :

Nouvelle bibliothèque libre de réflexion pour C++ [Nouveauté]


Sujet :

C++

  1. #21
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Oui, toujours dans l'optique de ne pas être intrusif, l'objet lui-même ne véhicule pas d'information relative à l'introspection, tout lui est associé de manière externe.

  2. #22
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    A part pour le binding de language de scripts, je vois aussi que ça pourrait grandement aider pour des outils d'edition de jeu (ou autre) par exemple. Ca semble du coup très facile d'exposer directement les classes représentant les entitées d'un jeu au code de l'outil d'edition et permettre au développeur de se concentrer sur cet outil.

  3. #23
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Complètement, d'ailleurs dans le studio de jeux dans lequel je bossais avant, on avait un système similaire et il était impressionnant de voir à quel point ça décuplait les possibilités des game designers, et cela nous allégeait le travail.
    Et cela concernait aussi le binding script, qui était très largement utilisé pour tout le code de gameplay.

  4. #24
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Hello, CAMP m'intéresse beaucoup pour mon projet, mais je ne trouve plus de lien valide.
    Le projet n'est plus libre ?

  5. #25
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Salut

    CAMP est toujours libre et disponible, mais il y a eu quelques changements, je t'explique tout ça par MP

  6. #26
    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 Laurent Gomila Voir le message
    Salut

    CAMP est toujours libre et disponible, mais il y a eu quelques changements, je t'explique tout ça par MP
    Pourquoi par MP ? Je suis tout aussi avide d'explications.

    Merci.
    "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)

  7. #27
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    En fait ce qui concerne CAMP est en remaniement en ce moment, je posterai des explications quand tout aura été tiré au clair.

    Pour le moment le site web n'a plus de page pour CAMP, mais je peux fournir les packages par e-mail, d'où le MP. Mais effectivement j'aurais peut-être dû dire tout ça tout à l'heure

  8. #28
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    J'avoue que je me le demande aussi.

    Si quelqu'un avait une explication simple avec un exemple concret à proposer, je lui en serait éternellement reconnaissant.
    exemple le designer d'un framework graphique type qt, utilise l'introspection pour afficher le volet des propriétés pour chaque widget

  9. #29
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Citation Envoyé par Laurent Gomila Voir le message
    En fait ce qui concerne CAMP est en remaniement en ce moment, je posterai des explications quand tout aura été tiré au clair.

    Pour le moment le site web n'a plus de page pour CAMP, mais je peux fournir les packages par e-mail, d'où le MP. Mais effectivement j'aurais peut-être dû dire tout ça tout à l'heure
    CAMP me semble très intéresssant pour le SBD que j'envisage. Pas d'urgence, pas besoin de m'envoyer les packages, mais tiens-nous au courant quand se sera de nouveau dispo

  10. #30
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Oui oui bien sûr, vous aurez des news dès demain, et un nouveau site web / espace développeur devrait être disponible d'ici quelques jours.

    C'est quoi un SBD ? Tu voulais peut-être dire SGBD ?

  11. #31
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Oui, SGDB, sauf que le qualifier de "Général" est peut-être excessif.
    Je pense d'ailleurs qu'aucun SGBD ne mérite ce qualificatif.

    EDIT: bon, après vérification SGBD veut dire "système de gestion de base de données". Je pensais que c'était "système général de base de données".
    Je vais dormir, c'est l'heure...

  12. #32
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Comme promis voilà les news :
    - Le code source de CAMP va très prochainement être hébergé publiquement sur www.github.com
    - Un nouveau site dédié au projet fournira wiki, forum, task tracker, etc.
    - La licence passera en LGPL
    - Une version 0.7 sortira peu de temps après pour remettre tout au clair
    - A partir de là je travaillerai activement sur la version 1.0 et sur le support / développement de la communauté

  13. #33
    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
    Cool, CAMP risque de m'intéresser aussi à terme

    A propos du fameux code déclaratif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
         // Bind our Person class to CAMP
         camp::Class::declare<Person>("Person")
             .constructor1<std::string>()
             .property("name", &Person::name)
             .property("age", &Person::age, &Person::setAge)
             .function("speak", &Person::speak);
    Je trouve que c'est bien car cela permet de choisir finement le niveau d'exposition de la classe aux méta-données.

    Par contre, ça serait bien si on avait aussi une macro pour le faire tout seul dans certain cas.

    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CAMP_TYPE(Person);
    CAMP_DECLARE_PUBLIC_METHODS(Person);
    CAMP_DECLARE_PRIVATE_FIELDS(Person);
    Ou quelque chose dans l'idée.

  14. #34
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Et comment cette macro connaîtrait-elle les fonctions et membres à déclarer ?

  15. #35
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    +1
    Surtout qu'il y a des membres public ou privés sans getter que l'on se souhaite pas exposer...
    Qui plus est, tu peux aussi documenter à la manière des docs_string de Boost.Python grâce au tag, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    camp::Class::declare<CBlobMerging>("CBlobMerging")
    		.tag("help", "test")
    		.base<IVisionModule>()
    		.constructor0()
    		.property("orientation",	&CBlobMerging::m_orientation).tag("property", "Orientation of the box")
    		.property("distance",		&CBlobMerging::m_distance).tag("property", "Distance between two boxes")
    		.property("input",			&CBlobMerging::m_input_name).tag("input", "List of Bounding Boxes")
    		.property("output",			&CBlobMerging::m_output_name).tag("output", "List of Bounding Boxes");
    Du coup, pas de miracle, il faut tout faire à la main !

  16. #36
    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
    Citation Envoyé par poukill Voir le message
    +1
    Surtout qu'il y a des membres public ou privés sans getter que l'on se souhaite pas exposer...
    Je suis d'accord, mais dans ce cas il suffit de ne pas utiliser la macro et de déclarer à la mano (je rejoins mon post précédent ou je dis que c'est bien pour gérer l'exposition finement).

    Quant à comment une telle macro trouve les membres à déclarer, ça dépend de ta question :
    - Si c'est quels membres choisir ? Ben par exemple, toutes les méthodes publiques (CAMP_DECLARE_PUBLIC_METHODS).
    - Si c'est comment techniquement ? C'est le boulot de la lib je dis pas que c'est facile.

  17. #37
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    - Si c'est comment techniquement ? C'est le boulot de la lib je dis pas que c'est facile.
    Je pense bien que c'est impossible, sauf si C++ peut énumérer. J'en doute.

  18. #38
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par camboui Voir le message
    Je pense bien que c'est impossible, sauf si C++ peut énumérer. J'en doute.
    Je confirme que ce n'est pas possible.

  19. #39
    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
    Citation Envoyé par camboui Voir le message
    Je pense bien que c'est impossible, sauf si C++ peut énumérer. J'en doute.
    Pour faire preuve de mauvaise foi, je dirais qu'on parle bien d'une macro, et donc qu'on est encore dans le précompilo, et pas dans C++ . Mais vous avez raison, c'est sans doute en effet impossible sans génération de code.

    On peut le faire avec de la génération, mais ça touche à la chaîne de compilation et on sort du cadre de camp.

  20. #40
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Voilà l'adresse du nouveau dépôt sur github :
    http://github.com/tegesoft/camp

    Le code qui s'y trouve est déjà passé en LGPL, nous ferons aussi bientôt une nouvelle release toute propre.

    Le site web avec wiki/forum/tracker sera mis en place un peu plus tard.

Discussions similaires

  1. SplatGL : une nouvelle bibliothèque de rendu Python pour les jeux 2D
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 01/11/2014, 16h38
  2. Mantle : une nouvelle bibliothèque graphiques pour mieux contrôler le GPU
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 15/11/2013, 11h51
  3. Bibliothèque (libre) pour site social
    Par ymoreau dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 08/06/2011, 18h05
  4. Réponses: 3
    Dernier message: 20/06/2006, 07h06

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