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

Boost C++ Discussion :

[Linux] Utilisation de boost::bind


Sujet :

Boost C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Par défaut [Linux] Utilisation de boost::bind
    Bonjour !

    J'ai deux problèmes de compilations sur le tutoriel de Boost.Asio et j'aimerais bien en voir le boût.
    D'abord, un problème avec la fonction boost : je me mange une erreur qui me dit que "'bind' is not a member of 'boost'".
    Soit je tape "boost::bind" et dans ce cas, j'ai droit à cette erreur.
    Soit je tape bind tout court, et dans ce cas il comprend naturellement que je parle de la fonction bind tiré de socket.h !

    Le deuxième problème de compilation vient de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class tcp_connection : public boost::enable_shared_from_this<tcp_connection>
    On me dit alors :
    server.cpp: error: invalid use of incomplete type ‘struct boost::enable_shared_from_this<tcp_connection>’
    Pourquoi diable ?

    Voici le code de ma classe (à deux vache près sans doute le même que sur le tutoriel).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #include <iostream>
    #include <string>
    #include <boost/asio.hpp>
    #include <boost/array.hpp>
     
    using namespace boost;
    using namespace asio;
    using namespace ip;
     
    class tcp_connection : public boost::enable_shared_from_this<tcp_connection>
    {
    public:  
      typedef shared_ptr<tcp_connection> pointer;
     
      static pointer create(io_service &ios)
      {
        return pointer(new tcp_connection(ios));
      }
     
      tcp_connection(io_service& ios) : m_socket(ios) { }
      tcp::socket&	socket(void)
      {
        return m_socket;
      }
      void		start(void)
      {
        async_write(m_socket, buffer("Ouste ! Sors d'ici !\n"),
    		boost::bind(&tcp_connection::handle_write, this, placeholders::error);
      }
     
    protected:
      void		handle_write(const system::error_code& errors)
      {
        if (!errors)
        {
          return ;
        }
        std::cout << "Erreur Fatale !\n" << std::endl;
      }
     
    private:
      tcp::socket	m_socket;
    };

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <boost/bind.hpp>
    #include <boost/enable_shared_from_this.hpp"
    ?

Discussions similaires

  1. utilisation correct de boost:bind et result_of
    Par guillaume07 dans le forum Boost
    Réponses: 3
    Dernier message: 02/11/2009, 15h13
  2. [Lazarus][Linux] Utilisation des composants powerpdf
    Par orion07 dans le forum Lazarus
    Réponses: 1
    Dernier message: 24/01/2007, 11h34
  3. Réponses: 5
    Dernier message: 18/12/2006, 17h34
  4. [BOOST] utilisation de boost uBLAS non compile avec visual c++
    Par le_voisin dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 06/09/2006, 22h03
  5. [linux] utilisation de getch
    Par troumad dans le forum C
    Réponses: 4
    Dernier message: 19/06/2006, 13h14

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