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 :

Luabind et std::vector/list


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2013
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 15
    Par d�faut Luabind et std::vector/list
    Bonjour,

    Je dois creer un jeux videos pour mon ecole et avec mon groupe nous avons decide de developper les IA en Lua.

    On a trouve plusieurs solutions pour appeler du Lua depuis le C++, et la meilleur est d'utiliser Luabind.
    On arrive a creer une instance d'une classe dans le C++ et l'envoyer au Lua (avec luabind::module pour definir la classe et luabind::globals pour envoyer l'instance).

    Notre probleme c'est qu'on arrive pas a envoyer/parcourir un std::vector ou un std::list en Lua.
    Sur la doc, il y a ceci : http://www.rasterbar.com/products/lu...n-stl-iterator

    Cela ne fonctionne pas.

    Nous avons aussi essayer de redefinir la std::list pour la lua :
    Code c++ : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    luabind::module(L)
    [
    	luabind::class_< std::list<int> >("list")
    	.def(luabind::constructor<>())
    	.def("size", &std::list<int>::size)
    	.def("push_back", &std::list<int>::push_back)
    ];

    Et en lua, on arrive a utiliser size(), push_back() mais on voit pas du tout comment on peut parcourir la list.

    Est ce que quelqu'un a deja reussi a envoyer des conteneur de la STL au lua avec luabind ??

    Merci d'avance pour vos reponses.
    (desole pour les accents mais je suis en qwerty)

  2. #2
    Membre chevronn�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2007
    Messages
    373
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Sant�

    Informations forums :
    Inscription : Juin 2007
    Messages : 373
    Par d�faut
    Qu'est ce qui ne fonctionne pas avec luabind::return_stl_iterator?

    L'exemple qui est donn� dans la documentation de luabind::return_stl_iterator permet d'exposer dans Lua un std::vector/std::list qui serait membre d'une classe.

    Tu peux peut-�tre t'en inspirer pour faire un truc du genre (pas du tout test�) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    std::list<int>& list_iterate(std::list<int>* v) {
        return *v;
    }
     
    luabind::module(L)
    [
    	luabind::class_< std::list<int> >("list")
    	.def(luabind::constructor<>())
    	.def("size", &std::list<int>::size)
    	.def("push_back", &std::list<int>::push_back)
    	.def("data", &list_iterate, luabind::return_stl_iterator)
    ];
    Code lua : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    v = list()
    for i in v.data() do
        -- ...
    end

  3. #3
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Kalith a donn� la bonne fa�on de faire.

    Pour parcourir le vector, il faut ensuite en LUA utiliser la syntaxe for item in p.data
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

Discussions similaires

  1. std::list ou std::vector comme argument de template
    Par epsilon68 dans le forum C++
    R�ponses: 11
    Dernier message: 01/03/2011, 23h34
  2. R�ponses: 2
    Dernier message: 18/09/2010, 22h33
  3. Rapidit� std::vector contre liste perso
    Par henrygoland dans le forum SL & STL
    R�ponses: 22
    Dernier message: 01/12/2008, 19h13
  4. [Tuto] Recherche de tutoriel sur std::list et std::vector
    Par pegase06 dans le forum SL & STL
    R�ponses: 27
    Dernier message: 24/07/2007, 16h23
  5. std::list, std::vector et allocation m�moire
    Par buzzkaido dans le forum SL & STL
    R�ponses: 20
    Dernier message: 15/06/2007, 15h58

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